From dc703eaeaef78e34fad392b9bb8c894a4de172c9 Mon Sep 17 00:00:00 2001 From: Claudio-Daniel Freire Date: Wed, 20 Jul 2011 12:34:09 +0200 Subject: [PATCH] Catch socket timeouts too and retry --- src/nepi/util/server.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/nepi/util/server.py b/src/nepi/util/server.py index 8fe87064..dbd0b563 100644 --- a/src/nepi/util/server.py +++ b/src/nepi/util/server.py @@ -65,6 +65,11 @@ def eintr_retry(func): continue else: raise + except OSError, e: + if e.errno == errno.EINTR: + continue + else: + raise else: return func(*p, **kw) return rv @@ -178,6 +183,7 @@ class Server(object): try: msg = self.recv_msg(conn) except socket.timeout, e: + self.log_error() break if msg == STOP_MSG: @@ -204,10 +210,12 @@ class Server(object): while '\n' not in chunk: try: chunk = conn.recv(1024) + except socket.timeout: + continue except OSError, e: if e.errno != errno.EINTR: raise - if chunk == '': + else: continue if chunk: data.append(chunk) -- 2.47.0