|
|
|
@ -474,17 +474,21 @@ given time, and optionally repeating in regular intervals after that.
|
|
|
|
|
The timers are based on real time, that is, if you register an event that
|
|
|
|
|
times out after an hour and you reset your system clock to last years
|
|
|
|
|
time, it will still time out after (roughly) and hour. "Roughly" because
|
|
|
|
|
detecting time jumps is hard, and soem inaccuracies are unavoidable (the
|
|
|
|
|
detecting time jumps is hard, and some inaccuracies are unavoidable (the
|
|
|
|
|
monotonic clock option helps a lot here).
|
|
|
|
|
|
|
|
|
|
The relative timeouts are calculated relative to the C<ev_now ()>
|
|
|
|
|
time. This is usually the right thing as this timestamp refers to the time
|
|
|
|
|
of the event triggering whatever timeout you are modifying/starting. If
|
|
|
|
|
you suspect event processing to be delayed and you *need* to base the timeout
|
|
|
|
|
of the event triggering whatever timeout you are modifying/starting. If
|
|
|
|
|
you suspect event processing to be delayed and you I<need> to base the timeout
|
|
|
|
|
on the current time, use something like this to adjust for this:
|
|
|
|
|
|
|
|
|
|
ev_timer_set (&timer, after + ev_now () - ev_time (), 0.);
|
|
|
|
|
|
|
|
|
|
The callback is guarenteed to be invoked only when its timeout has passed,
|
|
|
|
|
but if multiple timers become ready during the same loop iteration then
|
|
|
|
|
order of execution is undefined.
|
|
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
|
|
=item ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)
|
|
|
|
@ -540,6 +544,10 @@ again).
|
|
|
|
|
They can also be used to implement vastly more complex timers, such as
|
|
|
|
|
triggering an event on eahc midnight, local time.
|
|
|
|
|
|
|
|
|
|
As with timers, the callback is guarenteed to be invoked only when the
|
|
|
|
|
time (C<at>) has been passed, but if multiple periodic timers become ready
|
|
|
|
|
during the same loop iteration then order of execution is undefined.
|
|
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
|
|
=item ev_periodic_init (ev_periodic *, callback, ev_tstamp at, ev_tstamp interval, reschedule_cb)
|
|
|
|
@ -549,7 +557,6 @@ triggering an event on eahc midnight, local time.
|
|
|
|
|
Lots of arguments, lets sort it out... There are basically three modes of
|
|
|
|
|
operation, and we will explain them from simplest to complex:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
|
|
=item * absolute timer (interval = reschedule_cb = 0)
|
|
|
|
|