Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
01.05.2014
Размер:
997 б
Скачать
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "timer.h"


void callme( int signo, siginfo_t* evp, void* ucontext )
{
	long   sec, nsec;
	time_t tim = time(0);

	cerr << "timer Id: " << evp->si_value.sival_int 
	     << ", signo: " << signo << ", " << ctime(&tim);
}

int main()
{
	timer t1 ( SIGINT,  callme,  1 );
	timer t2 ( SIGUSR1, callme,  2 );
	timer t3 ( SIGUSR2, callme,  3 );

	if (!t1 || !t2 || !t3 ) return 1;

	t1.run( 2, 0,  2, 0 );
	t2.run( 3, 500000000,  3, 500000000 );
	t3.run( 5, 0,  5, 0 );
	 
	/* wait for timers to expire */
	for ( int i =0 ; i < 10; i++)
	{
		/* do some work and before timers expire */
		pause();

		cerr << "  t1: " << t1 << endl;
		cerr << "  t2: " << t2 << endl;
		cerr << "  t3: " << t3 << endl;
	}

	cerr << "t1 overrun: " << t1.overrun() << endl;
	cerr << "t2 overrun: " << t2.overrun() << endl;
	cerr << "t3 overrun: " << t3.overrun() << endl;

	return 0;
}
	
Соседние файлы в папке ch9