Issue #23618: Document EINTR changes in socket documentation

This commit is contained in:
Victor Stinner 2015-04-02 11:49:42 +02:00
parent 35bee932e4
commit 708d9ba5a2
4 changed files with 56 additions and 5 deletions

View File

@ -1066,7 +1066,7 @@ are always available. They are listed here in alphabetical order.
The ``'U'`` mode. The ``'U'`` mode.
.. versionchanged:: 3.5 .. versionchanged:: 3.5
If the system call is interrupted and the signal does not raise an If the system call is interrupted and the signal handler does not raise an
exception, the function now retries the system call instead of raising an exception, the function now retries the system call instead of raising an
:exc:`InterruptedError` exception (see :pep:`475` for the rationale). :exc:`InterruptedError` exception (see :pep:`475` for the rationale).

View File

@ -906,7 +906,7 @@ as internal buffering of data.
The *dir_fd* argument. The *dir_fd* argument.
.. versionchanged:: 3.5 .. versionchanged:: 3.5
If the system call is interrupted and the signal does not raise an If the system call is interrupted and the signal handler does not raise an
exception, the function now retries the system call instead of raising an exception, the function now retries the system call instead of raising an
:exc:`InterruptedError` exception (see :pep:`475` for the rationale). :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
@ -1088,7 +1088,7 @@ or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Window
:meth:`~file.read` or :meth:`~file.readline` methods. :meth:`~file.read` or :meth:`~file.readline` methods.
.. versionchanged:: 3.5 .. versionchanged:: 3.5
If the system call is interrupted and the signal does not raise an If the system call is interrupted and the signal handler does not raise an
exception, the function now retries the system call instead of raising an exception, the function now retries the system call instead of raising an
:exc:`InterruptedError` exception (see :pep:`475` for the rationale). :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
@ -1208,7 +1208,7 @@ or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Window
:meth:`~file.write` method. :meth:`~file.write` method.
.. versionchanged:: 3.5 .. versionchanged:: 3.5
If the system call is interrupted and the signal does not raise an If the system call is interrupted and the signal handler does not raise an
exception, the function now retries the system call instead of raising an exception, the function now retries the system call instead of raising an
:exc:`InterruptedError` exception (see :pep:`475` for the rationale). :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
@ -3375,7 +3375,7 @@ written in Python, such as a mail server's external command delivery program.
functions called with :const:`P_NOWAIT` return suitable process handles. functions called with :const:`P_NOWAIT` return suitable process handles.
.. versionchanged:: 3.5 .. versionchanged:: 3.5
If the system call is interrupted and the signal does not raise an If the system call is interrupted and the signal handler does not raise an
exception, the function now retries the system call instead of raising an exception, the function now retries the system call instead of raising an
:exc:`InterruptedError` exception (see :pep:`475` for the rationale). :exc:`InterruptedError` exception (see :pep:`475` for the rationale).

View File

@ -793,6 +793,11 @@ to sockets.
.. versionchanged:: 3.4 .. versionchanged:: 3.4
The socket is now non-inheritable. The socket is now non-inheritable.
.. versionchanged:: 3.5
If the system call is interrupted and the signal handler does not raise
an exception, the method now retries the system call instead of raising
an :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
.. method:: socket.bind(address) .. method:: socket.bind(address)
@ -966,6 +971,11 @@ to sockets.
For best match with hardware and network realities, the value of *bufsize* For best match with hardware and network realities, the value of *bufsize*
should be a relatively small power of 2, for example, 4096. should be a relatively small power of 2, for example, 4096.
.. versionchanged:: 3.5
If the system call is interrupted and the signal handler does not raise
an exception, the method now retries the system call instead of raising
an :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
.. method:: socket.recvfrom(bufsize[, flags]) .. method:: socket.recvfrom(bufsize[, flags])
@ -975,6 +985,11 @@ to sockets.
:manpage:`recv(2)` for the meaning of the optional argument *flags*; it defaults :manpage:`recv(2)` for the meaning of the optional argument *flags*; it defaults
to zero. (The format of *address* depends on the address family --- see above.) to zero. (The format of *address* depends on the address family --- see above.)
.. versionchanged:: 3.5
If the system call is interrupted and the signal handler does not raise
an exception, the method now retries the system call instead of raising
an :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
.. method:: socket.recvmsg(bufsize[, ancbufsize[, flags]]) .. method:: socket.recvmsg(bufsize[, ancbufsize[, flags]])
@ -1041,6 +1056,11 @@ to sockets.
.. versionadded:: 3.3 .. versionadded:: 3.3
.. versionchanged:: 3.5
If the system call is interrupted and the signal handler does not raise
an exception, the method now retries the system call instead of raising
an :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
.. method:: socket.recvmsg_into(buffers[, ancbufsize[, flags]]) .. method:: socket.recvmsg_into(buffers[, ancbufsize[, flags]])
@ -1107,6 +1127,11 @@ to sockets.
application needs to attempt delivery of the remaining data. For further application needs to attempt delivery of the remaining data. For further
information on this topic, consult the :ref:`socket-howto`. information on this topic, consult the :ref:`socket-howto`.
.. versionchanged:: 3.5
If the system call is interrupted and the signal handler does not raise
an exception, the method now retries the system call instead of raising
an :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
.. method:: socket.sendall(bytes[, flags]) .. method:: socket.sendall(bytes[, flags])
@ -1117,6 +1142,11 @@ to sockets.
success. On error, an exception is raised, and there is no way to determine how success. On error, an exception is raised, and there is no way to determine how
much data, if any, was successfully sent. much data, if any, was successfully sent.
.. versionchanged:: 3.5
If the system call is interrupted and the signal handler does not raise
an exception, the method now retries the system call instead of raising
an :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
.. method:: socket.sendto(bytes, address) .. method:: socket.sendto(bytes, address)
socket.sendto(bytes, flags, address) socket.sendto(bytes, flags, address)
@ -1127,6 +1157,11 @@ to sockets.
bytes sent. (The format of *address* depends on the address family --- see bytes sent. (The format of *address* depends on the address family --- see
above.) above.)
.. versionchanged:: 3.5
If the system call is interrupted and the signal handler does not raise
an exception, the method now retries the system call instead of raising
an :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
.. method:: socket.sendmsg(buffers[, ancdata[, flags[, address]]]) .. method:: socket.sendmsg(buffers[, ancdata[, flags[, address]]])
@ -1163,6 +1198,11 @@ to sockets.
.. versionadded:: 3.3 .. versionadded:: 3.3
.. versionchanged:: 3.5
If the system call is interrupted and the signal handler does not raise
an exception, the method now retries the system call instead of raising
an :exc:`InterruptedError` exception (see :pep:`475` for the rationale).
.. method:: socket.sendfile(file, offset=0, count=None) .. method:: socket.sendfile(file, offset=0, count=None)
Send a file until EOF is reached by using high-performance Send a file until EOF is reached by using high-performance

View File

@ -640,6 +640,17 @@ Changes in the Python API
- :func:`os.read`, :func:`os.write` - :func:`os.read`, :func:`os.write`
- :func:`select.select`, :func:`select.poll.poll`, :func:`select.epoll.poll`, - :func:`select.select`, :func:`select.poll.poll`, :func:`select.epoll.poll`,
:func:`select.kqueue.control`, :func:`select.devpoll.poll` :func:`select.kqueue.control`, :func:`select.devpoll.poll`
- :func:`socket.socket` methods:
* :meth:`~socket.socket.accept`
* :meth:`~socket.socket.recv`
* :meth:`~socket.socket.recvfrom`
* :meth:`~socket.socket.recvmsg`
* :meth:`~socket.socket.send`
* :meth:`~socket.socket.sendall`
* :meth:`~socket.socket.sendmsg`
* :meth:`~socket.socket.sendto`
- :func:`signal.sigtimedwait`, :func:`signal.sigwaitinfo` - :func:`signal.sigtimedwait`, :func:`signal.sigwaitinfo`
- :func:`time.sleep` - :func:`time.sleep`