New submission from Brian Maissy <br...@medigate.io>:
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. ---------- files: select_eintr.py messages: 330388 nosy: Brian Maissy priority: normal severity: normal status: open title: select which was interrupted by EINTR isn't re-run if the timeout has passed type: behavior versions: Python 3.5, Python 3.6, Python 3.7, Python 3.8 Added file: https://bugs.python.org/file47945/select_eintr.py _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue35310> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com