From a12e9779e39ae9075299df3f0d2dd7679e0f1dec Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Tue, 5 Jul 2011 23:47:23 +0200 Subject: [PATCH] Add some better error handling for accept call --- mopidy/utils/network.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mopidy/utils/network.py b/mopidy/utils/network.py index 1fed885a..13bbd2bf 100644 --- a/mopidy/utils/network.py +++ b/mopidy/utils/network.py @@ -57,7 +57,13 @@ class Server(object): host, port, self.protocol.__name__) def handle_accept(self, fd, flags): - sock, addr = self.listener.accept() # FIXME this might fail is some rare cases. + try: + sock, addr = self.listener.accept() + except socket.error as e: + if e.errno in (errno.EAGAIN, errno.EINTR): + return True # i.e. retry + raise + sock.setblocking(False) actor_ref = self.protocol.start(sock, addr)