You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
assignee=Noneclosed_at=<Date2018-12-05.23:17:30.083>created_at=<Date2018-11-25.13:19:06.435>labels= ['3.8', 'type-bug', '3.7']
title="select which was interrupted by EINTR isn't re-run if the timeout has passed"updated_at=<Date2018-12-05.23:17:30.082>user='https://bugs.python.org/BrianMaissy'
If a call to select.select() was interrupted by a signal and the select syscall set an errno of EINTR, then under PEP-475 the select call should be re-executed.
If, however, there is a signal handler which takes enough time that the select's timeout expires, select() is not retried, and the rlist is returned as-is (with fds in it which are not ready for reading).
Under this condition, either select() should be re-run with a timeout of 0, or the fd lists should be emptied before returning.
Example code which reproduces the problem attached.