summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2015-03-26 22:50:57 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2015-03-26 22:50:57 (GMT)
commita766ddfa2fa0934a3852d74b0630a7bd3c91958e (patch)
treed6a3e28d1d0dae89f39029ee93a78a8abc91ba63
parent1912b39deffe416f6b0c16df64b634a3e55fd424 (diff)
downloadcpython-a766ddfa2fa0934a3852d74b0630a7bd3c91958e.zip
cpython-a766ddfa2fa0934a3852d74b0630a7bd3c91958e.tar.gz
cpython-a766ddfa2fa0934a3852d74b0630a7bd3c91958e.tar.bz2
Issue #23648: Document the PEP 475 in the "Porting to Python 3.5" section and
add a version changed note in modified functions.
-rw-r--r--Doc/library/functions.rst5
-rw-r--r--Doc/library/os.rst20
-rw-r--r--Doc/whatsnew/3.5.rst8
3 files changed, 33 insertions, 0 deletions
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst
index 91c53de..546e6ee 100644
--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -1065,6 +1065,11 @@ are always available. They are listed here in alphabetical order.
The ``'U'`` mode.
+ .. versionchanged:: 3.5
+ If the system call is interrupted and the signal does not raise an
+ exception, the function now retries the system call instead of raising an
+ :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
+
.. function:: ord(c)
diff --git a/Doc/library/os.rst b/Doc/library/os.rst
index 7a0bd87..e15a6f7 100644
--- a/Doc/library/os.rst
+++ b/Doc/library/os.rst
@@ -905,6 +905,11 @@ as internal buffering of data.
.. versionadded:: 3.3
The *dir_fd* argument.
+ .. versionchanged:: 3.5
+ If the system call is interrupted and the signal does not raise an
+ exception, the function now retries the system call instead of raising an
+ :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
+
The following constants are options for the *flags* parameter to the
:func:`~os.open` function. They can be combined using the bitwise OR operator
``|``. Some of them are not available on all platforms. For descriptions of
@@ -1082,6 +1087,11 @@ or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Window
:func:`popen` or :func:`fdopen`, or :data:`sys.stdin`, use its
:meth:`~file.read` or :meth:`~file.readline` methods.
+ .. versionchanged:: 3.5
+ If the system call is interrupted and the signal does not raise an
+ exception, the function now retries the system call instead of raising an
+ :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
+
.. function:: sendfile(out, in, offset, nbytes)
sendfile(out, in, offset, nbytes, headers=None, trailers=None, flags=0)
@@ -1197,6 +1207,11 @@ or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Window
:func:`fdopen`, or :data:`sys.stdout` or :data:`sys.stderr`, use its
:meth:`~file.write` method.
+ .. versionchanged:: 3.5
+ If the system call is interrupted and the signal does not raise an
+ exception, the function now retries the system call instead of raising an
+ :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
+
.. function:: writev(fd, buffers)
@@ -3359,6 +3374,11 @@ written in Python, such as a mail server's external command delivery program.
id is known, not necessarily a child process. The :func:`spawn\* <spawnl>`
functions called with :const:`P_NOWAIT` return suitable process handles.
+ .. versionchanged:: 3.5
+ If the system call is interrupted and the signal does not raise an
+ exception, the function now retries the system call instead of raising an
+ :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
+
.. function:: wait3(options)
diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst
index 0996350..ef4999a 100644
--- a/Doc/whatsnew/3.5.rst
+++ b/Doc/whatsnew/3.5.rst
@@ -572,6 +572,14 @@ that may require changes to your code.
Changes in the Python API
-------------------------
+* :pep:`475`: the following functions are now retried when interrupted instead
+ of raising :exc:`InterruptedError` if the signal handler does not raise
+ an exception:
+
+ - :func:`os.open`, :func:`open`
+ - :func:`os.read`, :func:`os.write`
+ - :func:`time.sleep`
+
* Before Python 3.5, a :class:`datetime.time` object was considered to be false
if it represented midnight in UTC. This behavior was considered obscure and
error-prone and has been removed in Python 3.5. See :issue:`13936` for full