[Python-checkins] python/dist/src/Doc/lib libsocket.tex,1.60,1.61

gvanrossum@users.sourceforge.net gvanrossum@users.sourceforge.net
Thu, 06 Jun 2002 14:51:03 -0700


Update of /cvsroot/python/python/dist/src/Doc/lib
In directory usw-pr-cvs1:/tmp/cvs-serv390

Modified Files:
	libsocket.tex 
Log Message:
SF patch 555085 (timeout socket implementation) by Michael Gilfix.

I've made considerable changes to Michael's code, specifically to use
the select() system call directly and to store the timeout as a C
double instead of a Python object; internally, -1.0 (or anything
negative) represents the None from the API.

I'm not 100% sure that all corner cases are covered correctly, so
please keep an eye on this.  Next I'm going to try it Windows before
Tim complains.

No way is this a bugfix candidate. :-)


Index: libsocket.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/lib/libsocket.tex,v
retrieving revision 1.60
retrieving revision 1.61
diff -C2 -d -r1.60 -r1.61
*** libsocket.tex	22 Dec 2001 19:07:58 -0000	1.60
--- libsocket.tex	6 Jun 2002 21:51:01 -0000	1.61
***************
*** 515,518 ****
--- 515,541 ----
  \end{methoddesc}
  
+ \begin{methoddesc}[socket]{settimeout}{value}
+ Set a timeout on blocking socket operations. Value can be any numeric value
+ or \var{None}. Socket operations will raise an \exception{error} exception
+ if the timeout period \var{value} has elapsed before the operation has
+ completed. Setting a timeout of \var{None} disables timeouts on socket
+ operations.
+ \end{methoddesc}
+ 
+ \begin{methoddesc}[socket]{gettimeout}{}
+ Returns the timeout in floating seconds associated with socket operations.
+ A timeout of None indicates that timeouts on socket operations are
+ disabled.
+ \end{methoddesc}
+ 
+ Some notes on the interaction between socket blocking and timeouts:
+ socket blocking mode takes precendence over timeouts. If a socket
+ if set to non-blocking mode, then timeouts set on sockets are never
+ don't mean anything. The timeout value associated with the socket
+ can still be set via settimeout and its value retrieved via gettimeout,
+ but the timeout is never enforced (i.e, an exception will never be
+ thrown). Otherwise, if the socket is in blocking mode, setting the
+ timeout will raise an exception as expected.
+ 
  \begin{methoddesc}[socket]{setsockopt}{level, optname, value}
  Set the value of the given socket option (see the \UNIX{} manual page