File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libevent / test / test-time.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:02:54 2012 UTC (12 years, 8 months ago) by misho
Branches: libevent, MAIN
CVS tags: v1_4_14bp0, v1_4_14b, HEAD
libevent

    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>