From fa73779b0a54211e99bd1e76511f30352c7055e9 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 29 Jan 2015 00:36:51 +0100 Subject: asyncio: Fix _SelectorSocketTransport constructor Only start reading when connection_made() has been called: protocol.data_received() must not be called before protocol.connection_made(). --- Lib/asyncio/selector_events.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Lib/asyncio/selector_events.py') diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py index 42d88f5de79..f4996293621 100644 --- a/Lib/asyncio/selector_events.py +++ b/Lib/asyncio/selector_events.py @@ -578,8 +578,10 @@ class _SelectorSocketTransport(_SelectorTransport): self._eof = False self._paused = False - self._loop.add_reader(self._sock_fd, self._read_ready) self._loop.call_soon(self._protocol.connection_made, self) + # only start reading when connection_made() has been called + self._loop.call_soon(self._loop.add_reader, + self._sock_fd, self._read_ready) if waiter is not None: # only wake up the waiter when connection_made() has been called self._loop.call_soon(waiter._set_result_unless_cancelled, None) -- cgit v1.2.3