Annotation of embedaddon/libevent/test/test-time.c, revision 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>