diff options
Diffstat (limited to 'Lib/socket.py')
-rw-r--r-- | Lib/socket.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Lib/socket.py b/Lib/socket.py index 95901ae..1e28549 100644 --- a/Lib/socket.py +++ b/Lib/socket.py @@ -257,6 +257,7 @@ class SocketIO(io.RawIOBase): self._mode = mode self._reading = "r" in mode self._writing = "w" in mode + self._timeout_occurred = False def readinto(self, b): """Read up to len(b) bytes into the writable buffer *b* and return @@ -268,9 +269,14 @@ class SocketIO(io.RawIOBase): """ self._checkClosed() self._checkReadable() + if self._timeout_occurred: + raise IOError("cannot read from timed out object") while True: try: return self._sock.recv_into(b) + except timeout: + self._timeout_occurred = True + raise except error as e: n = e.args[0] if n == EINTR: |