--- gvpe/src/iom.h 2003/04/04 05:26:45 1.11 +++ gvpe/src/iom.h 2003/04/05 02:32:40 1.12 @@ -60,34 +60,29 @@ extern io_manager iom; // a singleton, together with it's construction/destruction problems. struct io_watcher : callback2 { - pollfd *p; + bool registered; // already registered? + int fd; + short events; template io_watcher (O1 *object, void (O2::*method)(io_watcher &, short)) : callback2(object,method) + , registered(false) { } ~io_watcher (); - void set(int fd, short events) - { - assert (p); - p->fd = fd; - p->events = events; - } + void set(int fd_, short events_); - void set(short events) + void set(short events_) { - assert (p); - p->events = events; + set (fd, events_); } - void start (int fd, short events) + void start (int fd_, short events_) { - iom.reg (this); // make sure pfd is set - - p->fd = fd; - p->events = events; + set (fd_, events_); + iom.reg (this); } void stop () @@ -118,10 +113,15 @@ trigger (); } - void start (); + void start () + { + iom.reg (this); + } + void start (tstamp when) { set (when); + iom.reg (this); } void stop () @@ -132,7 +132,6 @@ void reset (tstamp when = TSTAMP_CANCEL) { stop (); - at = when; } };