(original) (raw)
changeset: 76171:f8e7fcd581ff branch: 3.2 parent: 76169:4f5b44de5c37 user: Antoine Pitrou solipsis@pitrou.net date: Mon Apr 09 01:37:19 2012 +0200 files: Lib/socketserver.py Lib/test/test_socketserver.py description: Fix the patch for issue #7978: select() raises select.error before 3.3, not OSError. diff -r 4f5b44de5c37 -r f8e7fcd581ff Lib/socketserver.py --- a/Lib/socketserver.py Mon Apr 09 01:16:47 2012 +0200 +++ b/Lib/socketserver.py Mon Apr 09 01:37:19 2012 +0200 @@ -153,8 +153,8 @@ while True: try: return func(*args) - except OSError as e: - if e.errno != errno.EINTR: + except (OSError, select.error) as e: + if e.args[0] != errno.EINTR: raise class BaseServer: diff -r 4f5b44de5c37 -r f8e7fcd581ff Lib/test/test_socketserver.py --- a/Lib/test/test_socketserver.py Mon Apr 09 01:16:47 2012 +0200 +++ b/Lib/test/test_socketserver.py Mon Apr 09 01:37:19 2012 +0200 @@ -244,7 +244,7 @@ self.called += 1 if self.called == 1: # raise the exception on first call - raise OSError(errno.EINTR, os.strerror(errno.EINTR)) + raise select.error(errno.EINTR, os.strerror(errno.EINTR)) else: # Return real select value for consecutive calls return old_select(*args) /solipsis@pitrou.net