From d84fd73de2823afd8da5c3e5937d51f7ecad8a34 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 26 Aug 2014 01:01:59 +0200 Subject: [PATCH] Issue #22063: Fix asyncio documentation of socket and pipe operations regarding to non-blocking mode. The non-blocking mode does not matter when using a ProactorEventLoop, only for SelectorEventLoop. --- Doc/library/asyncio-eventloop.rst | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Doc/library/asyncio-eventloop.rst b/Doc/library/asyncio-eventloop.rst index ff685bb8397757..e9de4ad9d41d27 100644 --- a/Doc/library/asyncio-eventloop.rst +++ b/Doc/library/asyncio-eventloop.rst @@ -336,7 +336,8 @@ Low-level socket operations representing the data received. The maximum amount of data to be received at once is specified by *nbytes*. - The socket *sock* must be non-blocking. + With :class:`SelectorEventLoop` event loop, the socket *sock* must be + non-blocking. This method is a :ref:`coroutine `. @@ -352,7 +353,8 @@ Low-level socket operations an exception is raised, and there is no way to determine how much data, if any, was successfully processed by the receiving end of the connection. - The socket *sock* must be non-blocking. + With :class:`SelectorEventLoop` event loop, the socket *sock* must be + non-blocking. This method is a :ref:`coroutine `. @@ -370,7 +372,8 @@ Low-level socket operations :py:data:`~socket.AF_INET` and :py:data:`~socket.AF_INET6` address families. Use :meth:`getaddrinfo` to resolve the hostname asynchronously. - The socket *sock* must be non-blocking. + With :class:`SelectorEventLoop` event loop, the socket *sock* must be + non-blocking. This method is a :ref:`coroutine `. @@ -418,13 +421,16 @@ Connect pipes .. method:: BaseEventLoop.connect_read_pipe(protocol_factory, pipe) - Register read pipe in eventloop. Set the *pipe* to non-blocking mode. + Register read pipe in eventloop. *protocol_factory* should instantiate object with :class:`Protocol` interface. *pipe* is a :term:`file-like object `. Return pair ``(transport, protocol)``, where *transport* supports the :class:`ReadTransport` interface. + With :class:`SelectorEventLoop` event loop, the *pipe* is set to + non-blocking mode. + This method is a :ref:`coroutine `. .. method:: BaseEventLoop.connect_write_pipe(protocol_factory, pipe) @@ -432,10 +438,13 @@ Connect pipes Register write pipe in eventloop. *protocol_factory* should instantiate object with :class:`BaseProtocol` - interface. Pipe is file-like object already switched to nonblocking. + interface. *pipe* is file-like object. Return pair (transport, protocol), where transport support :class:`WriteTransport` interface. + With :class:`SelectorEventLoop` event loop, the *pipe* is set to + non-blocking mode. + This method is a :ref:`coroutine `. .. seealso::