*** empty log message ***

This commit is contained in:
Marc Alexander Lehmann 2007-12-03 13:41:24 +00:00
parent 42376e3a93
commit a7908ad875
5 changed files with 20 additions and 0 deletions

7
ev.c
View File

@ -888,6 +888,12 @@ ev_backend (EV_P)
return backend;
}
unsigned int
ev_loop_count (EV_P)
{
return loop_count;
}
static void noinline
loop_init (EV_P_ unsigned int flags)
{
@ -1420,6 +1426,7 @@ ev_loop (EV_P_ int flags)
if (expect_false (block < 0.)) block = 0.;
}
++loop_count;
backend_poll (EV_A_ block);
}

1
ev.h
View File

@ -388,6 +388,7 @@ void ev_default_destroy (void); /* destroy the default loop */
void ev_default_fork (void);
unsigned int ev_backend (EV_P);
unsigned int ev_loop_count (EV_P);
#endif
#define EVLOOP_NONBLOCK 1 /* do not block/wait */

10
ev.pod
View File

@ -432,6 +432,16 @@ Like C<ev_default_fork>, but acts on an event loop created by
C<ev_loop_new>. Yes, you have to call this on every allocated event loop
after fork, and how you do this is entirely your own problem.
=item unsigned int ev_loop_count (loop)
Returns the count of loop iterations for the loop, which is identical to
the number of times libev did poll for new events. It starts at C<0> and
happily wraps around with enough iterations.
This value can sometimes be useful as a generation counter of sorts (it
"ticks" the number of loop iterations), as it roughly corresponds with
C<ev_prepare> and C<ev_check> calls.
=item unsigned int ev_backend (loop)
Returns one of the C<EVBACKEND_*> flags indicating the event backend in

View File

@ -5,6 +5,7 @@ VARx(ev_tstamp, mn_now) /* monotonic clock "now" */
VARx(ev_tstamp, rtmn_diff) /* difference realtime - monotonic time */
VARx(int, backend)
VARx(int, activecnt) /* total number of active events ("refcount") */
VARx(unsigned int, loop_count); /* total number of loop iterations/blocks */
VARx(ev_tstamp, backend_fudge) /* assumed typical timer resolution */
VAR (backend_modify, void (*backend_modify)(EV_P_ int fd, int oev, int nev))

View File

@ -4,6 +4,7 @@
#define rtmn_diff ((loop)->rtmn_diff)
#define backend ((loop)->backend)
#define activecnt ((loop)->activecnt)
#define loop_count ((loop)->loop_count);
#define backend_fudge ((loop)->backend_fudge)
#define backend_modify ((loop)->backend_modify)
#define backend_poll ((loop)->backend_poll)