43 lines
1.9 KiB
TeX
43 lines
1.9 KiB
TeX
|
\section{Built-in module \sectcode{select}}
|
||
|
\bimodindex{select}
|
||
|
|
||
|
This module provides access to the function \code{select} available in
|
||
|
most \UNIX{} versions. It defines the following:
|
||
|
|
||
|
\renewcommand{\indexsubitem}{(in module select)}
|
||
|
\begin{excdesc}{error}
|
||
|
The exception raised when an error occurs. The accompanying value is
|
||
|
a pair containing the numeric error code from \code{errno} and the
|
||
|
corresponding string, as would be printed by the C function
|
||
|
\code{perror()}.
|
||
|
\end{excdesc}
|
||
|
|
||
|
\begin{funcdesc}{select}{iwtd\, owtd\, ewtd\, timeout}
|
||
|
This is a straightforward interface to the \UNIX{} \code{select()}
|
||
|
system call. The first three arguments are lists of `waitable
|
||
|
objects': either integers representing \UNIX{} file descriptors or
|
||
|
objects with a parameterless method named \code{fileno()} returning
|
||
|
such an integer. The three lists of waitable objects are for input,
|
||
|
output and `exceptional conditions', respectively. Empty lists are
|
||
|
allowed. The optional last argument is a time-out specified as a
|
||
|
floating point number in seconds. When the \var{timeout} argument
|
||
|
is omitted the function blocks until at least one file descriptor is
|
||
|
ready. A time-out value of zero specifies a poll and never blocks.
|
||
|
|
||
|
The return value is a triple of lists of objects that are ready:
|
||
|
subsets of the first three arguments. When the time-out is reached
|
||
|
without a file descriptor becoming ready, three empty lists are
|
||
|
returned.
|
||
|
|
||
|
Amongst the acceptable object types in the lists are Python file
|
||
|
objects (e.g. \code{sys.stdin}, or objects returned by \code{open()}
|
||
|
or \code{posix.popen()}), socket objects returned by
|
||
|
\code{socket.socket()}, and the module \code{stdwin} which happens to
|
||
|
define a function \code{fileno()} for just this purpose. You may
|
||
|
also define a \dfn{wrapper} class yourself, as long as it has an
|
||
|
appropriate \code{fileno()} method (that really returns a \UNIX{} file
|
||
|
descriptor, not just a random integer).
|
||
|
\end{funcdesc}
|
||
|
\ttindex{socket}
|
||
|
\ttindex{stdwin}
|