mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Issue #23485: select.select() is now retried automatically with the recomputed
timeout when interrupted by a signal, except if the signal handler raises an exception. This change is part of the PEP 475. The asyncore and selectors module doesn't catch the InterruptedError exception anymore when calling select.select(), since this function should not raise InterruptedError anymore.
This commit is contained in:
parent
3f5d48bead
commit
f70e1ca0fc
9 changed files with 85 additions and 31 deletions
|
@ -310,10 +310,7 @@ class SelectSelector(_BaseSelectorImpl):
|
|||
def select(self, timeout=None):
|
||||
timeout = None if timeout is None else max(timeout, 0)
|
||||
ready = []
|
||||
try:
|
||||
r, w, _ = self._select(self._readers, self._writers, [], timeout)
|
||||
except InterruptedError:
|
||||
return ready
|
||||
r, w, _ = self._select(self._readers, self._writers, [], timeout)
|
||||
r = set(r)
|
||||
w = set(w)
|
||||
for fd in r | w:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue