--- gvpe/src/iom.C 2004/12/19 18:44:33 1.27 +++ gvpe/src/iom.C 2005/02/14 20:51:14 1.29 @@ -35,7 +35,7 @@ // for IOM_SIG #if IOM_SIG -# include +# include # include #endif @@ -382,7 +382,17 @@ # endif # if IOM_TIME - set_now (); + { + // update time, try to compensate for gross non-monotonic time changes + tstamp diff = NOW; + set_now (); + diff = NOW - diff; + + if (diff < 0) + for (io_manager_vec::const_iterator i = tw.end (); i-- > tw.begin (); ) + if (*i) + (*i)->at += diff; + } # endif if (fds > 0)