/* $OpenBSD: test-time.c,v 1.2 2002/06/25 15:50:16 mickey Exp $ */ /* * Compile with: * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent */ #include #include #include #include #include #include #include #include #include #include int called = 0; #define NEVENT 20000 struct event *ev[NEVENT]; void time_cb(int fd, short event, void *arg) { struct timeval tv; int i, j; called++; if (called < 10*NEVENT) { for (i = 0; i < 10; i++) { j = random() % NEVENT; tv.tv_sec = 0; tv.tv_usec = random() % 50000L; if (tv.tv_usec % 2) timeout_add(ev[j], &tv); else timeout_del(ev[j]); } } } int main (int argc, char **argv) { struct timeval tv; int i; /* Initalize the event library */ event_init(); for (i = 0; i < NEVENT; i++) { ev[i] = malloc(sizeof(struct event)); /* Initalize one event */ timeout_set(ev[i], time_cb, ev[i]); tv.tv_sec = 0; tv.tv_usec = random() % 50000L; timeout_add(ev[i], &tv); } event_dispatch(); return (called < NEVENT); }