Issue #23485: select.devpoll.poll() is now retried when interrupted by a signal

This commit is contained in:
Victor Stinner 2015-03-31 12:10:33 +02:00
parent 4448c08451
commit 45ca48b03d
5 changed files with 85 additions and 49 deletions

View file

@ -479,11 +479,10 @@ if hasattr(select, 'devpoll'):
# devpoll() has a resolution of 1 millisecond, round away from
# zero to wait *at least* timeout seconds.
timeout = math.ceil(timeout * 1e3)
fd_event_list = self._devpoll.poll(timeout)
ready = []
try:
fd_event_list = self._devpoll.poll(timeout)
except InterruptedError:
return ready
for fd, event in fd_event_list:
events = 0
if event & ~select.POLLIN: