#pragma interface #include extern "C" { #include } class Signal { int sig; void (*save)(int); // previous handler Event *prev; static void handler(int); protected: void *operator new(size_t); // enforce LIFO cnstr/destr public: static struct timeval timeout;// timeout set to zero on signal Signal(int,Event * = 0); static int check(); virtual ~Signal(); // virtual to suppress bogus g++ 2.2 warning }; struct SignalEvent: Event, private Signal { SignalEvent(int s): Signal(s,this) { } };