Deleted Added
sdiff udiff text old ( 156803 ) new ( 165009 )
full compact
1'\"
2'\" Copyright (c)1996-2002 by Hartmut Brandt
3'\" All rights reserved.
4'\"
5'\" Author: Hartmut Brandt
6'\"
7'\" Redistribution of this software and documentation and use in source and
8'\" binary forms, with or without modification, are permitted provided that
9'\" the following conditions are met:
10'\"
11'\" 1. Redistributions of source code or documentation must retain the above
12'\" copyright notice, this list of conditions and the following disclaimer.
13'\" 2. Redistributions in binary form must reproduce the above copyright

--- 9 unchanged lines hidden (view full) ---

23'\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24'\" OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25'\" LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26'\" NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27'\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28'\"
29'\" $Begemot: libbegemot/rpoll.man,v 1.4 2004/09/21 15:59:00 brandt Exp $
30'\"
31.TH rpoll 3 "21 Oct 1996" "BEGEMOT" "BEGEMOT Library"
32.SH NAME
33rpoll - callback functions for file descriptors and timers
34.SH SYNOPSIS
35.LP
36.B "# include <rpoll.h>"
37.LP
38.BR "typedef void (*poll_f)(int " "fd" ", int " "mask" ", void *" "arg);"
39.br
40.BR "typedef void (*timer_f)(int " "tid" ", void *" "arg);"
41.LP
42.BR "int poll_register(int " "fd" ", poll_f "
43.RB "func" ", void *" "arg" ", int " "mask" ");"
44.LP
45.BR "void poll_unregister(int " "handle" ");"
46.LP
47.BR "int poll_start_timer(u_int " "msecs" ", int " "repeat" ", timer_f " "func,"
48.if n .ti +.5i
49.BR "void *" "arg);"
50.LP
51.BR "void poll_stop_timer(int " "handle" ");"
52.LP
53.BR "void poll_dispatch(int " "wait" ");"
54.SH DESCRIPTION
55Many programs need to read from several file descriptors at the same time.
56Typically in these programs one of
57.BR select (3c)
58or
59.BR poll (2)
60is used.

--- 47 unchanged lines hidden (view full) ---

108is changed to reflect the new mask.
109.LP
110A registered file descriptor may be de-registered by calling
111.B poll_unregister
112with the handle returned by
113.BR poll_register .
114.LP
115A timer is created with
116.BR poll_start_timer .
117.I msecs
118is the number of milliseconds, after which the timer event will be generated.
119.I repeat
120selects one-short behavior (if 0) or a repeatable timer (if not 0). A one-short timer
121will automatically unregistered after expiry.
122.I func
123is the user function which will be called with a timer id and the user supplied
124.IR arg .
125.B poll_start_timer
126returnes a timer id, which may be used to cancel the timer with
127.BR poll_stop_timer .
128A one-short timer should be canceled only if it has not yet fired.
129.LP
130.B poll_dispatch
131must be called to actually dispatch events.
132.I wait
133is a flag, which should be 0, if only a poll should be done. In this case, the function returns,
134after polling the registered file descriptors and timers. If

--- 11 unchanged lines hidden (view full) ---

146while(1)
147 poll_dispatch(1);
148.ft 1
149.fi
150.RE
151.SH "SEE ALSO"
152.BR poll (2), select (3C)
153.SH "RETURN VALUES"
154.B poll_register
155and
156.B poll_start_timer
157return a handle which may be used to unregister the file descriptor or cancel the timer.
158.LP
159Both functions and
160.B poll_dispatch
161call
162.BR xrealloc (l)
163and can end in
164.BR panic (l).
165.SH "ERRORS"

--- 23 unchanged lines hidden ---