#include"config.h"#include<signal.h>#include"alarmsleep.h"AlarmSleep::AlarmSleep(unsignednseconds):flag(0){sigset_tss;sigemptyset(&ss);Set(nseconds);do{sigsuspend(&ss);}while(!flag);Cancel();}AlarmSleep::~AlarmSleep(){}voidAlarmSleep::handler(){flag=1;Set(5);// A possibility of a race condition - try again.
}