OLD | NEW |
| (Empty) |
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 | |
OLD | NEW |