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