diff --git a/lib/utils.py b/lib/utils.py index 2909f866418db6b21b17d0e80b09d4ba80a17b30..1a8b185dfcb460e66ca462532b3634e558eba48f 100644 --- a/lib/utils.py +++ b/lib/utils.py @@ -2519,12 +2519,16 @@ def IgnoreSignals(fn, *args, **kwargs): try: return fn(*args, **kwargs) except EnvironmentError, err: - if err.errno != errno.EINTR: + if err.errno == errno.EINTR: + return None + else: raise except (select.error, socket.error), err: # In python 2.6 and above select.error is an IOError, so it's handled # above, in 2.5 and below it's not, and it's handled here. - if not (err.args and err.args[0] == errno.EINTR): + if err.args and err.args[0] == errno.EINTR: + return None + else: raise