Browse Source

*** empty log message ***

Marc Alexander Lehmann 11 years ago
4 changed files with 26 additions and 5 deletions
  1. +6
  2. +6
  3. +2
  4. +12

+ 6
- 5
Changes View File

@ -4,16 +4,18 @@ TODO: ev_walk
TODO: remain
- new functionality: ev_set_userdata, ev_userdata,
- ev_unloop and ev_loop wrongly used a global variable to exit loops,
instead of using a per-loop variable (bug caught by accident...).
- the ev_set_io_collect_interval interpretation has changed.
- add new functionality: ev_set_userdata, ev_userdata,
ev_set_invoke_pending_cb, ev_set_loop_release_cb,
ev_invoke_pending, together with a long example about thread
- ev_unloop and ev_loop wrongly used a global variable to exit loops,
instead of using a per-loop variable (bug caught by accident...).
- add ev_timer_remaining (as requested by Denis F. Latypoff).
- add ev_loop_depth.
- calling ev_unloop in fork/prepare watchers will no longer poll
for new events.
- Denis F. Latypoff corrected many typos in example code snippets.
- the ev_set_io_collect_interval interpretation has changed.
- honor autoconf detection of EV_USE_CLOCK_SYSCALL, also double-
check that the syscall number is available before trying to
use it (reported by ry@tinyclouds).
@ -21,7 +23,6 @@ TODO: EV_MINIMAL
slightly higher accuracy.
- properly declare ev_loop_verify and ev_now_update even when
- implement ev_loop_depth.
- do not compile in any priority code when EV_MAXPRI == EV_MINPRI.
- support EV_MINIMAL==2 for a reduced API.
- actually 0-initialise struct sigaction when installing signals.

+ 6
- 0
ev.c View File

@ -2489,6 +2489,12 @@ ev_timer_again (EV_P_ ev_timer *w)
ev_timer_remaining (EV_P_ ev_timer *w)
return ev_at (w) - (ev_is_active (w) ? mn_now : 0.);
void noinline
ev_periodic_start (EV_P_ ev_periodic *w)

+ 2
- 0
ev.h View File

@ -638,6 +638,8 @@ void ev_timer_start (EV_P_ ev_timer *w);
void ev_timer_stop (EV_P_ ev_timer *w);
/* stops if active and no repeat, restarts if active and repeating, starts if inactive and repeating */
void ev_timer_again (EV_P_ ev_timer *w);
/* return remaining time */
ev_tstamp ev_timer_remaining (EV_P_ ev_timer *w);
void ev_periodic_start (EV_P_ ev_periodic *w);

+ 12
- 0
ev.pod View File

@ -1822,6 +1822,18 @@ C<repeat> value), or reset the running timer to the C<repeat> value.
This sounds a bit complicated, see L<Be smart about timeouts>, above, for a
usage example.
=item ev_timer_remaining (loop, ev_timer *)
Returns the remaining time until a timer fires. If the timer is active,
then this time is relative to the current event loop time, otherwise it's
the timeout value currently configured.
That is, after an C<ev_timer_set (w, 5, 7)>, C<ev_timer_remaining> returns
C<5>. When the timer is started and one second passes, C<ev_timer_remain>
will return C<4>. When the timer expires and is restarted, it will return
roughly C<7> (likely slightly less as callback invocation takes some time,
too), and so on.
=item ev_tstamp repeat [read-write]
The current C<repeat> value. Will be used each time the watcher times out