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);  }  | 
