From: root Date: Sun, 11 Nov 2007 00:05:59 +0000 (+0000) Subject: make timers best-effort non-drifting X-Git-Tag: rel-0_8~24 X-Git-Url: https://git.llucax.com/software/libev.git/commitdiff_plain/cf2e067e143e40c3b874a16069773fe04d3737bc?ds=inline make timers best-effort non-drifting --- diff --git a/ev.c b/ev.c index 28ed91b..a605a57 100644 --- a/ev.c +++ b/ev.c @@ -989,7 +989,11 @@ timers_reify (EV_P) if (w->repeat) { assert (("negative ev_timer repeat value found while processing timers", w->repeat > 0.)); - ((WT)w)->at = mn_now + w->repeat; + + ((WT)w)->at += w->repeat; + if (((WT)w)->at < mn_now) + ((WT)w)->at = mn_now; + downheap ((WT *)timers, timercnt, 0); } else