The great advantage of Libevent is the replacement of the event loops commonly found on event driver network servers and applications.
An application just needs to call event_dispatch() and then add or remove event dynamically without having to change the event loop.
Important information about event notification mechanisms can be found on Dan Kegel's web page: The C10K problem
More information can be found on he oficial Libevent web page: http://monkey.org/~provos/libevent/
1: #include <stdio.h>
2: #include <stdlib.h>
3: #include <unistd.h>
4: #include <signal.h>
5: #include <event.h>
6:
7: void signalhandler(int fd, short event, void *arg) {
8:
9: struct event *ev = arg;
10: printf("SIGINT triggered!\n");
11: }
12:
13: int main (int argc, char *argv[]) {
14:
15: struct event ev;
16:
17: /* event API needs to be initialized with before it can be used. */
18: event_init();
19:
20: /* set the event SIGINT with event type EV_SIGNAL for the hook signalhandler /*
21: event_set(&ev, SIGINT, EV_SIGNAL | EV_PERSIST, signalhandler, &ev);
22:
23: /* add the event */
24: event_add(&ev, NULL);
25:
26: /* process the event */
27: event_dispatch();
28:
29: return 0;
30: }
Later I will post more examples and further explanation.
No comments:
Post a Comment