Issue #23715: signal.sigwaitinfo() and signal.sigtimedwait() are now retried

when interrupted by a signal not in the *sigset* parameter, if the signal
handler does not raise an exception. signal.sigtimedwait() recomputes the
timeout with a monotonic clock when it is retried.

Remove test_signal.test_sigwaitinfo_interrupted() because sigwaitinfo() doesn't
raise InterruptedError anymore if it is interrupted by a signal not in its
sigset parameter.
This commit is contained in:
Victor Stinner 2015-03-20 12:54:28 +01:00
parent a3c0202eb5
commit a453cd8d85
5 changed files with 99 additions and 56 deletions

View file

@ -408,6 +408,11 @@ The :mod:`signal` module defines the following functions:
.. versionadded:: 3.3
.. versionchanged:: 3.5
The function is now retried if interrupted by a signal not in *sigset*
and the signal handler does not raise an exception (see :pep:`475` for
the rationale).
.. function:: sigtimedwait(sigset, timeout)
@ -422,6 +427,11 @@ The :mod:`signal` module defines the following functions:
.. versionadded:: 3.3
.. versionchanged:: 3.5
The function is now retried with the recomputed timeout if interrupted by
a signal not in *sigset* and the signal handler does not raise an
exception (see :pep:`475` for the rationale).
.. _signal-example: