.BI "void sel_addtimer(sel_state *" s ", sel_timer *" t ,
.BI " struct timeval *" tv ,
.BI " void (*" func ")(struct timeval *" tv ", void *" p ),
+.BI " void *" p );
.BI "void sel_rmtimer(sel_timer *" t );
.BI "void sel_addhook(sel_state *" s ", sel_hook *" h ,
.B sel
subsystem provides a structured way of handling I/O in a non-blocking
event-driven sort of a way, for single-threaded programs. (Although
-there's no reason at all why multithreaded programs shouldn't use
+there's no reason at all why multithreaded programs shouldn't use
.BR sel ,
it's much less useful.)
.PP
.BR selbuf (3),
.BR mLib (3).
.SH AUTHOR
-Mark Wooding, <mdw@nsict.org>
+Mark Wooding, <mdw@distorted.org.uk>