summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2002-06-07 12:38:23 (GMT)
committerGuido van Rossum <guido@python.org>2002-06-07 12:38:23 (GMT)
commit715b861d948b972587375f870adbb5a960d11ca7 (patch)
treefa7f636cc742428bae35a996f46afce6bd7ebc8d /Doc
parent62a7f63a2467ed993d2de4ed3eae6e96d0e72e62 (diff)
downloadcpython-715b861d948b972587375f870adbb5a960d11ca7.zip
cpython-715b861d948b972587375f870adbb5a960d11ca7.tar.gz
cpython-715b861d948b972587375f870adbb5a960d11ca7.tar.bz2
Clarify the interaction between timeout/non-blocking mode, makefile
and fromfd.
Diffstat (limited to 'Doc')
-rw-r--r--Doc/lib/libsocket.tex11
1 files changed, 10 insertions, 1 deletions
diff --git a/Doc/lib/libsocket.tex b/Doc/lib/libsocket.tex
index 3024fa3..54dfa6c 100644
--- a/Doc/lib/libsocket.tex
+++ b/Doc/lib/libsocket.tex
@@ -284,7 +284,7 @@ checked --- subsequent operations on the object may fail if the file
descriptor is invalid. This function is rarely needed, but can be
used to get or set socket options on a socket passed to a program as
standard input or output (such as a server started by the \UNIX{} inet
-daemon). The socket is assumed to be created in blocking mode without
+daemon). The socket is assumed to be in blocking mode without
a timeout.
Availability: \UNIX.
\end{funcdesc}
@@ -455,6 +455,7 @@ are described in \ref{bltin-file-objects}, ``File Objects.'')
The file object references a \cfunction{dup()}ped version of the
socket file descriptor, so the file object and socket object may be
closed or garbage-collected independently.
+The socket should be in blocking mode.
\index{I/O control!buffering}The optional \var{mode}
and \var{bufsize} arguments are interpreted the same way as by the
built-in \function{file()} function; see ``Built-in Functions''
@@ -546,6 +547,14 @@ previously set timeout. Setting the timeout to zero acts similarly
but is implemented different than setting the socket in non-blocking
mode (this could be considered a bug and may even be fixed).
+Timeout mode internally sets the socket in non-blocking mode. The
+blocking and timeout modes are shared between file descriptors and
+socket objects that refer to the same network endpoint. A consequence
+of this is that file objects returned by the \method{makefile()}
+method should only be used when the socket is in blocking mode; in
+timeout or non-blocking mode file operations that cannot be completed
+immediately will fail.
+
\begin{methoddesc}[socket]{setsockopt}{level, optname, value}
Set the value of the given socket option (see the \UNIX{} manual page
\manpage{setsockopt}{2}). The needed symbolic constants are defined in