Skip to content

Commit bf50f10

Browse files
miss-islingtongvanrossum
authored andcommitted
GH-88968: Add notes about socket ownership transfers (GH-97936)
(cherry picked from commit 74ea204) Co-authored-by: Guido van Rossum <[email protected]>
1 parent 508ef0f commit bf50f10

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

Doc/library/asyncio-eventloop.rst

+24
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,12 @@ Opening network connections
456456
*happy_eyeballs_delay*, *interleave*
457457
and *local_addr* should be specified.
458458

459+
.. note::
460+
461+
The *sock* argument transfers ownership of the socket to the
462+
transport created. To close the socket, call the transport's
463+
:meth:`~asyncio.BaseTransport.close` method.
464+
459465
* *local_addr*, if given, is a ``(local_host, local_port)`` tuple used
460466
to bind the socket locally. The *local_host* and *local_port*
461467
are looked up using ``getaddrinfo()``, similarly to *host* and *port*.
@@ -554,6 +560,12 @@ Opening network connections
554560
transport. If specified, *local_addr* and *remote_addr* should be omitted
555561
(must be :const:`None`).
556562

563+
.. note::
564+
565+
The *sock* argument transfers ownership of the socket to the
566+
transport created. To close the socket, call the transport's
567+
:meth:`~asyncio.BaseTransport.close` method.
568+
557569
See :ref:`UDP echo client protocol <asyncio-udp-echo-client-protocol>` and
558570
:ref:`UDP echo server protocol <asyncio-udp-echo-server-protocol>` examples.
559571

@@ -665,6 +677,12 @@ Creating network servers
665677
* *sock* can optionally be specified in order to use a preexisting
666678
socket object. If specified, *host* and *port* must not be specified.
667679

680+
.. note::
681+
682+
The *sock* argument transfers ownership of the socket to the
683+
server created. To close the socket, call the server's
684+
:meth:`~asyncio.Server.close` method.
685+
668686
* *backlog* is the maximum number of queued connections passed to
669687
:meth:`~socket.socket.listen` (defaults to 100).
670688

@@ -766,6 +784,12 @@ Creating network servers
766784
* *sock* is a preexisting socket object returned from
767785
:meth:`socket.accept <socket.socket.accept>`.
768786

787+
.. note::
788+
789+
The *sock* argument transfers ownership of the socket to the
790+
transport created. To close the socket, call the transport's
791+
:meth:`~asyncio.BaseTransport.close` method.
792+
769793
* *ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over
770794
the accepted connections.
771795

Doc/library/asyncio-stream.rst

+24
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ and work with streams:
6767
The rest of the arguments are passed directly to
6868
:meth:`loop.create_connection`.
6969

70+
.. note::
71+
72+
The *sock* argument transfers ownership of the socket to the
73+
:class:`StreamWriter` created. To close the socket, call its
74+
:meth:`~asyncio.StreamWriter.close` method.
75+
7076
.. versionchanged:: 3.7
7177
Added the *ssl_handshake_timeout* parameter.
7278

@@ -103,6 +109,12 @@ and work with streams:
103109
The rest of the arguments are passed directly to
104110
:meth:`loop.create_server`.
105111

112+
.. note::
113+
114+
The *sock* argument transfers ownership of the socket to the
115+
server created. To close the socket, call the server's
116+
:meth:`~asyncio.Server.close` method.
117+
106118
.. versionchanged:: 3.7
107119
Added the *ssl_handshake_timeout* and *start_serving* parameters.
108120

@@ -123,6 +135,12 @@ and work with streams:
123135

124136
See also the documentation of :meth:`loop.create_unix_connection`.
125137

138+
.. note::
139+
140+
The *sock* argument transfers ownership of the socket to the
141+
:class:`StreamWriter` created. To close the socket, call its
142+
:meth:`~asyncio.StreamWriter.close` method.
143+
126144
.. availability:: Unix.
127145

128146
.. versionchanged:: 3.7
@@ -143,6 +161,12 @@ and work with streams:
143161

144162
See also the documentation of :meth:`loop.create_unix_server`.
145163

164+
.. note::
165+
166+
The *sock* argument transfers ownership of the socket to the
167+
server created. To close the socket, call the server's
168+
:meth:`~asyncio.Server.close` method.
169+
146170
.. availability:: Unix.
147171

148172
.. versionchanged:: 3.7

0 commit comments

Comments
 (0)