diff options
author | root <root> | 2007-11-11 00:05:59 +0000 |
---|---|---|
committer | root <root> | 2007-11-11 00:05:59 +0000 |
commit | 80f561c62ce8d30b87e4298b954ce280c4b5465f (patch) | |
tree | 21c8295a55a5656691a88ce6b9996b7c9f91f143 | |
parent | cf2e067e143e40c3b874a16069773fe04d3737bc (diff) |
make timers best-effort non-drifting
-rw-r--r-- | ev++.h | 15 | ||||
-rw-r--r-- | ev.c | 2 |
2 files changed, 16 insertions, 1 deletions
@@ -46,6 +46,21 @@ namespace ev { #include "ev.h" + enum { + UNDEF = EV_UNDEF, + NONE = EV_NONE, + READ = EV_READ, + WRITE = EV_WRITE, + TIMEOUT = EV_TIMEOUT, + PERIODIC = EV_PERIODIC, + SIGNAL = EV_SIGNAL, + IDLE = EV_IDLE, + CHECK = EV_CHECK, + PREPARE = EV_PREPARE, + CHILD = EV_CHILD, + ERROR = EV_ERROR, + }; + typedef ev_tstamp tstamp; inline ev_tstamp now (EV_P) @@ -1339,7 +1339,7 @@ ev_timer_stop (EV_P_ struct ev_timer *w) downheap ((WT *)timers, timercnt, ((W)w)->active - 1); } - ((WT)w)->at = w->repeat; + ((WT)w)->at -= mn_now; ev_stop (EV_A_ (W)w); } |