--- gvpe/src/iom.C 2004/11/12 10:23:33 1.23 +++ gvpe/src/iom.C 2004/12/15 02:59:54 1.26 @@ -96,12 +96,17 @@ tstamp NOW; #if IOM_TIME -inline void set_now (void) +tstamp io_manager::now () { struct timeval tv; gettimeofday (&tv, 0); - NOW = (tstamp)tv.tv_sec + (tstamp)tv.tv_usec / 1000000.; + return (tstamp)tv.tv_sec + (tstamp)tv.tv_usec / 1000000.; +} + +void io_manager::set_now () +{ + NOW = now (); } #endif @@ -120,14 +125,14 @@ abort (); } - fcntl (sigpipe[0], F_SETFL, O_NONBLOCK); - fcntl (sigpipe[1], F_SETFL, O_NONBLOCK); + fcntl (sigpipe[0], F_SETFL, O_NONBLOCK); fcntl (sigpipe[0], F_SETFD, FD_CLOEXEC); + fcntl (sigpipe[1], F_SETFL, O_NONBLOCK); fcntl (sigpipe[1], F_SETFD, FD_CLOEXEC); #endif iom_valid = true; #if IOM_TIME - set_now (); + io_manager::set_now (); tw0.start (TSTAMP_MAX); #endif @@ -285,7 +290,7 @@ for (int i = tw.size (); i--; ) if (!tw[i]) tw.erase_unordered (i); - else if (tw[i]->at <= NOW + IOM_ACCURACY) + else if (tw[i]->at <= NOW) { time_watcher &w = *tw[i]; @@ -390,7 +395,7 @@ while (read (sigpipe[0], &ch, 1) > 0) ; - for (sig_vec **svp = sw.end (); svp-- > sw.begin (); ) + for (vector::iterator svp = sw.end (); svp-- > sw.begin (); ) if (*svp && (*svp)->pending) { sig_vec &sv = **svp;