diff options
author | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2023-04-27 15:44:37 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@cvs.openbsd.org> | 2023-04-27 15:44:37 +0000 |
commit | f738194885a3d813f0a7960a604baca927932dee (patch) | |
tree | fd8605fc4fd00ac1d437ded309d5b0eff3fb09fe /lib/libevent | |
parent | f411f11d4c0a59b975833c7984dbc5aaaf85631d (diff) |
various minor content corrections and improvements;
feedback and OK jmc@ and Ted Bullock
Diffstat (limited to 'lib/libevent')
-rw-r--r-- | lib/libevent/event_set.3 | 127 |
1 files changed, 80 insertions, 47 deletions
diff --git a/lib/libevent/event_set.3 b/lib/libevent/event_set.3 index 6c95ec5ab3e..0c8dff9466b 100644 --- a/lib/libevent/event_set.3 +++ b/lib/libevent/event_set.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: event_set.3,v 1.1 2023/04/26 18:56:16 schwarze Exp $ +.\" $OpenBSD: event_set.3,v 1.2 2023/04/27 15:44:36 schwarze Exp $ .\" Copyright (c) 2023 Ted Bullock <tbullock@comore.com> .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -13,7 +13,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: April 26 2023 $ +.Dd $Mdocdate: April 27 2023 $ .Dt EVENT_SET 3 .Os .Sh NAME @@ -37,11 +37,11 @@ .Fa "struct event *ev" .Fa "int fd" .Fa "short events" -.Fa "void (*fn)(int, short, void *)" +.Fa "void (*callback)(int, short, void *)" .Fa "void *arg" .Fc -.Fd #define evtimer_set(ev, fn, arg) -.Fd #define signal_set(ev, signal, fn, arg) +.Fd #define evtimer_set(ev, callback, arg) +.Fd #define signal_set(ev, signal, callback, arg) .Ft int .Fn event_base_set "struct event_base *base" "struct event *ev" .Ft int @@ -57,7 +57,7 @@ .Fa "struct event_base *base" .Fa "int fd" .Fa "short events" -.Fa "void (*fn)(int, short, void *)" +.Fa "void (*callback)(int, short, void *)" .Fa "void *arg" .Fa "const struct timeval *tv" .Fc @@ -65,22 +65,24 @@ .Fo event_once .Fa "int fd" .Fa "short events" -.Fa "void (*fn)(int, short, void *)" +.Fa "void (*callback)(int, short, void *)" .Fa "void *arg" .Fa "const struct timeval *tv" .Fc .Sh DESCRIPTION The .Fn event_set -function prepares an +function initializes an uninitialized, unused, .Vt event -structure to monitor a file descriptor or signal. -Once prepared, the +structure to monitor a file descriptor, signal, or timeout. +Once initialized, the .Vt event can be scheduled using .Fn event_add . -The event becomes activated and the callback is triggered when the file -descriptor state changes or timeout expires. +The event becomes activated and the +.Fa callback +is triggered when the file descriptor state changes, the signal arrives, +or the timeout expires. Refer to .Xr event_base_loop 3 for documentation on running an event loop. @@ -127,8 +129,8 @@ That is, it should remain active until it is removed by calling .Fn event_del . Signal events typically require this flag. .El -.It Va fn : -A user-defined callback function that is executed when the event triggers. +.It Va callback : +A user-defined function that is executed when the event triggers. .Pp .Bl -enum -width Ds -compact .It @@ -147,7 +149,9 @@ The third parameter corresponds to a user-specified pointer passed as a .Vt void * . .El .It Va arg : -User-specified pointer to pass to the callback function. +User-specified pointer to pass to the +.Fa callback +function. .El .Pp There are several helper macros that make it easier to set up timeout and @@ -161,8 +165,8 @@ are named consistently with the library function .Fn event_set . The following macro and function calls are equivalent: .Bd -literal -offset indent -evtimer_set(ev, fn, arg); -event_set(ev, \-1, 0, fn, arg); +evtimer_set(ev, callback, arg); +event_set(ev, \-1, 0, callback, arg); .Ed .Pp Likewise, configuring a signal event with @@ -170,13 +174,23 @@ Likewise, configuring a signal event with has an equivalent call to .Fn event_set : .Bd -literal -offset indent -signal_set(ev, signal, fn, arg); -event_set(ev, signal, EV_SIGNAL|EV_PERSIST, fn, arg); +signal_set(ev, signal, callback, arg); +event_set(ev, signal, EV_SIGNAL|EV_PERSIST, callback, arg); .Ed .Pp +If +.Xr event_init 3 +was called earlier, .Fn event_set -configures new events assuming that the library was initialized by -.Xr event_init 3 . +associates +.Fa ev +with the +.Vt event_base +structure it created; otherwise, +.Fa ev +is not associated with any +.Vt event_base +structure. If a program needs to assign an event to a specific .Vt event_base structure, it should call @@ -199,9 +213,13 @@ or corresponding helper macros or functions can be assigned to a new structure. .Pp .Fn event_add -schedules events using the appropriate kernel notification method (see +schedules the +.Fa ev +using the kernel notification method of its associated +.Vt event_base +structure; see .Xr event_base_new 3 -for information about kernel notification methods). +for information about kernel notification methods. If a timeout is specified, it is added to the event timeout list. Events can register as timeout events without attaching to file descriptors or signals. @@ -213,12 +231,13 @@ to specify that an event has no timeout. The behavior is undefined if .Fa ev is -.Dv NULL . -The helper macros +.Dv NULL +or uninitialized. +The effect of the macros .Fn evtimer_add and .Fn signal_add -correspond to +is identical to .Fn event_add . .Pp If @@ -235,7 +254,9 @@ Reschedules the event with the event loop. .El .Pp .Fn event_del -removes an event from an event loop. +removes an event from the event loop of its associated +.Vt event_base +structure. The .Fa ev argument is the event to remove. @@ -247,21 +268,23 @@ On success, it removes the event from internal event queues and unregisters it with the kernel notification method. The function fails if the library was not initialized with .Xr event_init 3 -or the event was not previously assigned to an +and the event was not previously assigned to an .Vt event_base with .Fn event_base_set . The function does not free memory assigned to user-defined data structures, nor does it close open file descriptors. -The helper macros +The effect of the macros .Fn evtimer_del and .Fn signal_del -correspond to +is identical to .Fn event_del . .Pp .Fn event_base_once -is used to schedule a callback function to be executed exactly once without +is used to schedule a +.Fa callback +function to be executed exactly once without requiring the caller to create and manage an .Vt event structure. @@ -279,17 +302,19 @@ is .It Va fd : A file descriptor to monitor. .It Va events : -Flags matching .Dv EV_TIMEOUT , -.Dv EV_READ +.Dv EV_READ , +.Dv EV_WRITE , or -.Dv EV_WRITE . -.It Va fn : -A user-defined callback function that is executed when the event triggers. +.Dv EV_READ | EV_WRITE . +.It Va callback : +A user-defined function that is executed when the event triggers. This callback matches the same prototype and design used in .Fn event_set . .It Va arg : -A user-specified pointer to pass to the callback function. +A user-specified pointer to pass to the +.Fa callback +function. .It Va tv : A pointer to an optional timeout .Vt timeval @@ -314,8 +339,7 @@ These functions return 0 on success or \-1 on failure. .Fn event_base_set returns \-1 if the event being reassigned has already been processed by -.Fn event_add -or is not initialized. +.Fn event_add . .Pp .Fn event_add returns \-1 if a memory allocation fault occurs, @@ -344,23 +368,32 @@ System has insufficient memory to add the event to the event loop. .Fn event_add and .Fn event_del -first appeared in libevent-0.1 and have been available since +first appeared in libevent-0.1, +.Fn signal_set , +.Fn signal_add , +and +.Fn signal_del +in libevent-0.5 , +and +.Fn evtimer_set , +.Fn evtimer_add +and +.Fn evtimer_del +in libevent-0.6. +These functions have been available since .Ox 3.2 . .Pp -.Fn event_base_set -first appeared in libevent-1.0 and has been available since -.Ox 3.8 . -.Pp .Fn event_once first appeared in libevent-0.8 and has been available since +.Ox 3.6 . +.Pp +.Fn event_base_set +first appeared in libevent-1.0 and has been available since .Ox 3.8 . .Pp .Fn event_base_once first appeared in libevent-1.3c and has been available since .Ox 4.4 . -.Pp -The helper macros first appeared in libevent-0.6 and have been available since -.Ox 3.2 . .Sh AUTHORS .An -nosplit .An Niels Provos |