From 80f561c62ce8d30b87e4298b954ce280c4b5465f Mon Sep 17 00:00:00 2001 From: root Date: Sun, 11 Nov 2007 00:05:59 +0000 Subject: make timers best-effort non-drifting --- ev++.h | 15 +++++++++++++++ ev.c | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ev++.h b/ev++.h index 95d0a76..aa46fb4 100644 --- a/ev++.h +++ b/ev++.h @@ -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) diff --git a/ev.c b/ev.c index a605a57..000c369 100644 --- a/ev.c +++ b/ev.c @@ -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); } -- cgit v1.2.3