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.
diff --git a/Doc/library/signal.rst b/Doc/library/signal.rst
index ed616b2..0156415 100644
--- a/Doc/library/signal.rst
+++ b/Doc/library/signal.rst
@@ -408,6 +408,11 @@
.. 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 @@
.. 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: