/* * $Id: event_test.c,v 1.2 2005/06/22 22:07:15 murrayma Exp $ * * Author: Markus Stenberg <fingon@iki.fi> * * Copyright (c) 1996 Markus Stenberg * All rights reserved * * Created: Tue Aug 27 20:08:33 1996 fingon * Last modified: Sun Nov 24 01:32:49 1996 fingon * */ #include <stdio.h> #include "muxevent.h" #define number(a,b) (a+rand()%(b-a+1)) #if 0 /* In seconds */ #define TEST_TIME 3600 #else /* In iterations */ #define TEST_ITERATIONS 1000000 #endif #ifdef TEST_TIME #define TEST_MSECS 10000 #define TEST_ITERATIONS TEST_TIME * (1000000 / TEST_MSECS) #endif #define LARGE_NUMBER 500000 #define SIMULTANEOUS_EVENTS 600 #define SHORT_TIME 1 #define LONG_TIME 2 void hellow(MUXEVENT * e) { int n; int d = (int) e->data; #if 1 int d1, d2; d1 = d / LARGE_NUMBER; d2 = d % LARGE_NUMBER; printf("Hello, world!(%d) - %d\n", d1, d2); n = number(0, 10); #endif muxevent_add_simple_arg(!n ? number(1, LONG_TIME) : number(1, SHORT_TIME), hellow, (int *) (d + 1)); } void main() { int i; muxevent_initialize(); for (i = 0; i < SIMULTANEOUS_EVENTS; i++) muxevent_add_simple_arg(i + 1, hellow, (int *) (LARGE_NUMBER * i)); for (i = 0; i < TEST_ITERATIONS; i++) { #ifdef TEST_TIME usleep(TEST_MSECS); #endif muxevent_run(); } }