diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2013-12-04 20:02:42 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2013-12-04 20:02:42 (GMT) |
commit | e3658a70c30669fd2b639e4fd85acf72a016a80c (patch) | |
tree | cade28244ad1822d6952e93cbcba1407c440ba1a /Doc | |
parent | abbc8ca70809ae4a9cae22cd7ec2da519b961b97 (diff) | |
download | cpython-e3658a70c30669fd2b639e4fd85acf72a016a80c.zip cpython-e3658a70c30669fd2b639e4fd85acf72a016a80c.tar.gz cpython-e3658a70c30669fd2b639e4fd85acf72a016a80c.tar.bz2 |
Issue #19882: tweak docs for socket.close()
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/socket.rst | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst index aa18ae4..82400b7 100644 --- a/Doc/library/socket.rst +++ b/Doc/library/socket.rst @@ -701,8 +701,9 @@ The module :mod:`socket` exports the following constants and functions: Socket Objects -------------- -Socket objects have the following methods. Except for :meth:`makefile` these -correspond to Unix system calls applicable to sockets. +Socket objects have the following methods. Except for +:meth:`~socket.makefile`, these correspond to Unix system calls applicable +to sockets. .. method:: socket.accept() @@ -721,9 +722,15 @@ correspond to Unix system calls applicable to sockets. .. method:: socket.close() - Close the socket. All future operations on the socket object will fail. The - remote end will receive no more data (after queued data is flushed). Sockets are - automatically closed when they are garbage-collected. + Mark the socket closed. The underlying system resource (e.g. a file + descriptor) is also closed when all file objects from :meth:`makefile()` + are closed. Once that happens, all future operations on the socket + object will fail. The remote end will receive no more data (after + queued data is flushed). + + Sockets are automatically closed when they are garbage-collected, but + it is recommended to :meth:`close` them explicitly, or to use a + :keyword:`with` statement around them. .. note:: :meth:`close()` releases the resource associated with a connection but @@ -829,10 +836,13 @@ correspond to Unix system calls applicable to sockets. type depends on the arguments given to :meth:`makefile`. These arguments are interpreted the same way as by the built-in :func:`open` function. - Closing the file object won't close the socket unless there are no remaining - references to the socket. The socket must be in blocking mode; it can have - a timeout, but the file object's internal buffer may end up in a inconsistent - state if a timeout occurs. + The socket must be in blocking mode; it can have a timeout, but the file + object's internal buffer may end up in a inconsistent state if a timeout + occurs. + + Closing the file object returned by :meth:`makefile` won't close the + original socket unless all other file objects have been closed and + :meth:`socket.close` has been called on the socket object. .. note:: |