Annotation of embedaddon/libevent/sample/signal-test.c, revision 1.1.1.1
1.1 misho 1: /*
2: * Compile with:
3: * cc -I/usr/local/include -o signal-test \
4: * signal-test.c -L/usr/local/lib -levent
5: */
6:
7: #include <sys/types.h>
8:
9: #ifdef HAVE_CONFIG_H
10: #include "config.h"
11: #endif
12:
13: #include <sys/stat.h>
14: #ifndef WIN32
15: #include <sys/queue.h>
16: #include <unistd.h>
17: #include <sys/time.h>
18: #else
19: #include <windows.h>
20: #endif
21: #include <signal.h>
22: #include <fcntl.h>
23: #include <stdlib.h>
24: #include <stdio.h>
25: #include <string.h>
26: #include <errno.h>
27:
28: #include <event.h>
29:
30: int called = 0;
31:
32: static void
33: signal_cb(int fd, short event, void *arg)
34: {
35: struct event *signal = arg;
36:
37: printf("%s: got signal %d\n", __func__, EVENT_SIGNAL(signal));
38:
39: if (called >= 2)
40: event_del(signal);
41:
42: called++;
43: }
44:
45: int
46: main (int argc, char **argv)
47: {
48: struct event signal_int;
49:
50: /* Initalize the event library */
51: struct event_base* base = event_base_new();
52:
53: /* Initalize one event */
54: event_set(&signal_int, SIGINT, EV_SIGNAL|EV_PERSIST, signal_cb,
55: &signal_int);
56: event_base_set(base, &signal_int);
57:
58: event_add(&signal_int, NULL);
59:
60: event_base_dispatch(base);
61: event_base_free(base);
62:
63: return (0);
64: }
65:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>