    The ti(select) system call was developed to handle asynchronous
        hi(multiplexing)emi(I/O multiplexing).
    The tt(select) system call is used to handle, e.g., input appearing
simultaneously at a set of file descriptors.

    The tt(select) function is rather complex, and its full discussion is
beyond the annotations()' scope.  By encapsulating tt(select) in a tt(class
Selector), hiding its details and offering an intuitively attractive
interface, its use is simplified. The tt(Selector) class has these
features:
    itemization(
    it() Efficiency. As most of tt(Select)'s members are very small,
most members can be implemented  inline. The class requires quite a few data
members. Most of these data members belong to types that require some system
headers to be included first:
        verbinclude(//HEADERS examples/selector.h)
    it() The class interface can now be defined. The data type tt(fd_set) is a
type designed to be used by tt(select) and variables of this type contain the
set of file descriptors on which tt(select) may sense some
activity. Furthermore, tt(select) allows us to fire an
        emi(asynchronous alarm). To set the alarm time, the class tt(Selector)
defines a ti(timeval) data member. Other members are used for internal
bookkeeping purposes. Here is the class tt(Selector)'s interface:
        verbinclude(//CLASS examples/selector.h)
    )
