Example #1
0
static void gotev1(void *_x)
{
	printf("got ev1\n");

	IV_EVENT_RAW_INIT(&ev2);
	ev2.handler = gotev2;
	iv_event_raw_register(&ev2);

	iv_event_raw_post(&ev2);
}
Example #2
0
static void got_ev(void *_dummy)
{
	ev_received++;

	if (!die) {
		iv_event_raw_post(&ev);
	} else {
		iv_validate_now();
		tim_end = iv_now;
		iv_event_raw_unregister(&ev);
	}
}
Example #3
0
int main()
{
	iv_init();

	IV_EVENT_RAW_INIT(&ev0);
	ev0.handler = gotev0;
	iv_event_raw_register(&ev0);

	iv_event_raw_post(&ev0);

	iv_main();

	iv_deinit();

	return 0;
}
Example #4
0
int main()
{
	long long nsec;

	iv_init();

#ifdef USE_SIGNAL
	signal(SIGALRM, got_signal_timeout);
	alarm(5);
#else
	IV_TIMER_INIT(&timeout);
	iv_validate_now();
	timeout.expires = iv_now;
	timeout.expires.tv_sec += 5;
	timeout.handler = got_timer_timeout;
	iv_timer_register(&timeout);
#endif

	IV_EVENT_RAW_INIT(&ev);
	ev.handler = got_ev;
	iv_event_raw_register(&ev);

	iv_validate_now();
	tim_start = iv_now;

	iv_event_raw_post(&ev);

	iv_main();

	iv_deinit();

	nsec = 1000000000ULL * (tim_end.tv_sec - tim_start.tv_sec) +
		(tim_end.tv_nsec - tim_start.tv_nsec);

	printf("%s: %d in %ld nsec => %d/sec\n",
	       iv_poll_method_name(), ev_received, (long)nsec,
	       (int)(1000000000ULL * ev_received / nsec));

	return 0;
}