From 1f683bbe71480e652c6be75cb88426aa6a7507a9 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 30 Oct 2013 14:36:58 -0700 Subject: [PATCH] asyncio: When not closing the connection after receiving EOF, still remove the read handler. --- Lib/asyncio/selector_events.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py index 6cffdd4e354..c296dccb2d3 100644 --- a/Lib/asyncio/selector_events.py +++ b/Lib/asyncio/selector_events.py @@ -468,7 +468,12 @@ class _SelectorSocketTransport(_SelectorTransport): self._protocol.data_received(data) else: keep_open = self._protocol.eof_received() - if not keep_open: + if keep_open: + # We're keeping the connection open so the + # protocol can write more, but we still can't + # receive more, so remove the reader callback. + self._loop.remove_reader(self._sock_fd) + else: self.close() def write(self, data):