Annotation of embedaddon/libevent/test/test-time.c, revision 1.1.1.1
1.1 misho 1: /*
2: * Compile with:
3: * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent
4: */
5: #ifdef HAVE_CONFIG_H
6: #include "config.h"
7: #endif
8:
9: #ifdef WIN32
10: #include <winsock2.h>
11: #endif
12:
13: #include <sys/types.h>
14: #include <sys/stat.h>
15: #ifdef HAVE_SYS_TIME_H
16: #include <sys/time.h>
17: #endif
18: #include <fcntl.h>
19: #include <stdlib.h>
20: #include <stdio.h>
21: #include <string.h>
22: #ifdef HAVE_UNISTD_H
23: #include <unistd.h>
24: #endif
25: #include <errno.h>
26:
27: #include <event.h>
28:
29: int called = 0;
30:
31: #define NEVENT 20000
32:
33: struct event *ev[NEVENT];
34:
35: static int
36: rand_int(int n)
37: {
38: #ifdef WIN32
39: return (int)(rand() * n);
40: #else
41: return (int)(random() % n);
42: #endif
43: }
44:
45: static void
46: time_cb(int fd, short event, void *arg)
47: {
48: struct timeval tv;
49: int i, j;
50:
51: called++;
52:
53: if (called < 10*NEVENT) {
54: for (i = 0; i < 10; i++) {
55: j = rand_int(NEVENT);
56: tv.tv_sec = 0;
57: tv.tv_usec = rand_int(50000);
58: if (tv.tv_usec % 2)
59: evtimer_add(ev[j], &tv);
60: else
61: evtimer_del(ev[j]);
62: }
63: }
64: }
65:
66: int
67: main (int argc, char **argv)
68: {
69: struct timeval tv;
70: int i;
71:
72: /* Initalize the event library */
73: event_init();
74:
75: for (i = 0; i < NEVENT; i++) {
76: ev[i] = malloc(sizeof(struct event));
77:
78: /* Initalize one event */
79: evtimer_set(ev[i], time_cb, ev[i]);
80: tv.tv_sec = 0;
81: tv.tv_usec = rand_int(50000);
82: evtimer_add(ev[i], &tv);
83: }
84:
85: event_dispatch();
86:
87: return (called < NEVENT);
88: }
89:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>