diff --git a/lib/network.py b/lib/network.py index 3e743cbb..8c6bcfae 100644 --- a/lib/network.py +++ b/lib/network.py @@ -1,6 +1,7 @@ import time import Queue import os +import errno import sys import random import select @@ -746,7 +747,12 @@ class Network(util.DaemonThread): return rin = [i for i in self.interfaces.values()] win = [i for i in self.interfaces.values() if i.unsent_requests] - rout, wout, xout = select.select(rin, win, [], 0.1) + try: + rout, wout, xout = select.select(rin, win, [], 0.1) + except socket.error as (code, msg): + if code == errno.EINTR: + return + raise assert not xout for interface in wout: interface.send_requests()