--- gvpe/src/iom.h 2003/03/26 01:58:46 1.5 +++ gvpe/src/iom.h 2003/03/28 04:05:10 1.6 @@ -41,6 +41,8 @@ void idle_cb (tstamp &ts); time_watcher *idle; public: + void reschedule_time_watchers (); + // register a watcher void reg (int fd, short events, io_watcher *w); void unreg (const io_watcher *w); @@ -104,6 +106,11 @@ : callback(object,method) { } + ~io_watcher () + { + iom.unreg (this); + } + void start (int fd, short events) { iom.reg (fd, events, this); @@ -118,13 +125,20 @@ #define TSTAMP_CANCEL -1. struct time_watcher : callback { + bool registered; // already registered? tstamp at; template time_watcher (O1 *object, void (O2::*method)(tstamp &)) : callback(object,method) + , registered(false) { } + ~time_watcher () + { + iom.unreg (this); + } + void set (tstamp when); void trigger ();