| Main index | Section 9 | Options |
#include <geom/geom.h>
The g_post_event() function tells the GEOM framework to call function func with argument arg from the event queue. The flag argument is passed to malloc(9) for memory allocations inside of g_post_event(). The only allowed flags are M_WAITOK and M_NOWAIT. The rest of the arguments are used as references to identify the event. An event can be canceled by using any of the given references as an argument to g_cancel_event(). The list of references has to end with a NULL value.
The g_waitfor_event() function is a blocking version of the g_post_event() function. It waits until the event is finished or canceled and then returns.
The g_post_event_ep() function posts the event with a pre-allocated struct g_event. An event may be pre-allocated with g_alloc_event().
The g_cancel_event() function cancels all event(s) identified by ref. Cancellation is equivalent to calling the requested function with requested arguments and argument flag set to EV_CANCEL.
| The argument flag has to be M_WAITOK or M_NOWAIT. | |
| The list of references has to end with a NULL value. | |
g_waitfor_event():
| The argument flag has to be M_WAITOK or M_NOWAIT. | |
| The list of references has to end with a NULL value. | |
| The g_waitfor_event() function cannot be called from an event, since doing so would result in a deadlock. | |
g_alloc_event():
| The argument flag has to be M_WAITOK or M_NOWAIT. | |
| The returned struct g_event * must be freed with g_free() if g_post_event_ep() is not called. | |
void
example_event(void *arg, int flag)
{
if (flag == EV_CANCEL) {
printf("Event with argument %p canceled. , arg);
return;
}
printf("Event with argument %p called. , arg);
}
| [ENOMEM] | |
| The flag argument was set to M_NOWAIT and there was insufficient memory. | |
Possible errors for the g_waitfor_event() function:
| [EAGAIN] | |
| The event was canceled. | |
| [ENOMEM] | |
| The flag argument was set to M_NOWAIT and there was insufficient memory. | |
| G_EVENT (9) | July 23, 2021 |
| Main index | Section 9 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
| “ | A typical Unix /bin or /usr/bin directory contains a hundred different kinds of programs, written by dozens of egotistical programmers, each with its own syntax, operating paradigm, rules of use ... strategies for specifying options, and different sets of constraints. | ” |
| — The Unix Haters' handbook | ||