diff -r 2e59e0b579e5 Lib/asyncio/selector_events.py --- a/Lib/asyncio/selector_events.py Wed May 28 18:50:12 2014 +0300 +++ b/Lib/asyncio/selector_events.py Wed May 28 23:12:12 2014 +0200 @@ -81,10 +81,15 @@ class BaseSelectorEventLoop(base_events. self.add_reader(self._ssock.fileno(), self._read_from_self) def _read_from_self(self): - try: - self._ssock.recv(1) - except (BlockingIOError, InterruptedError): - pass + while True: + try: + data = self._ssock.recv(4096) + if not data: + break + except InterruptedError: + continue + except BlockingIOError: + break def _write_to_self(self): # This may be called from a different thread, possibly after