From: root
This doesn't mean there will always be 3600 seconds in between triggers, but only that the the callback will be called when the system time shows a -full hour (UTC), or more correct, when the system time is evenly divisible +full hour (UTC), or more correctly, when the system time is evenly divisible by 3600.
Another way to think about it (for the mathematically inclined) is that
ev_periodic
will try to run the callback in this mode at the next possible
@@ -565,8 +565,10 @@ ignored. Instead, each time the periodic watcher gets scheduled, the
reschedule callback will be called with the watcher as first, and the
current time as second argument.
NOTE: This callback MUST NOT stop or destroy the periodic or any other -periodic watcher, ever, or make any event loop modificstions. If you need -to stop it, return 1e30 (or so, fudge fudge) and stop it afterwards.
+periodic watcher, ever, or make any event loop modifications. If you need +to stop it, returnnow + 1e30
(or so, fudge fudge) and stop it afterwards.
+ Also, <this callback must always return a time that is later than the
+passed now
value >. Not even now
itself will be ok.
Its prototype is c<ev_tstamp (*reschedule_cb)(struct ev_periodic *w, ev_tstamp now)>, e.g.:
static ev_tstamp my_rescheduler (struct ev_periodic *w, ev_tstamp now)