1 /*
2 * Compile with:
3 * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent
4 */
5
6 #ifdef HAVE_SYS_TYPES_H
7 #include <sys/types.h>
8 #endif
9 #include <sys/stat.h>
10 #ifndef WIN32
11 #ifdef HAVE_SYS_QUEUE_H
12 #include <sys/queue.h>
13 #endif
14 #ifdef HAVE_UNISTD_H
15 #include <unistd.h>
16 #endif
17 #else
18 #include <time.h>
19 #endif
20 #ifdef HAVE_SYS_TIME_H
21 #include <sys/time.h>
22 #endif
23 #include <fcntl.h>
24 #include <stdlib.h>
25 #include <stdio.h>
26 #include <string.h>
27 #include <errno.h>
28
29 #include <opal/event/event.h>
30
31 int lasttime;
32
33 void
timeout_cb(int fd,short event,void * arg)34 timeout_cb(int fd, short event, void *arg)
35 {
36 struct timeval tv;
37 opal_event_t *timeout = arg;
38 int newtime = time(NULL);
39
40 printf("%s: called at %d: %d\n", __func__, newtime,
41 newtime - lasttime);
42 lasttime = newtime;
43
44 timerclear(&tv);
45 tv.tv_sec = 2;
46 opal_event_add(timeout, &tv);
47 }
48
49 int
main(int argc,char ** argv)50 main (int argc, char **argv)
51 {
52 opal_event_t timeout;
53 struct timeval tv;
54
55 /* Initalize the event library */
56 opal_event_init();
57
58 /* Initalize one event */
59 opal_evtimer_set(&timeout, timeout_cb, &timeout);
60
61 timerclear(&tv);
62 tv.tv_sec = 2;
63 opal_event_add(&timeout, &tv);
64
65 lasttime = time(NULL);
66
67 opal_event_dispatch();
68
69 return (0);
70 }
71
72