|
|
|
@ -115,8 +115,7 @@ get_clock (void)
|
|
|
|
|
return ev_time ();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#define array_nextsize(n) (((n) << 1) | 4 & ~3)
|
|
|
|
|
#define array_prevsize(n) (((n) >> 1) | 4 & ~3)
|
|
|
|
|
#define array_roundsize(base,n) ((n) | 4 & ~3)
|
|
|
|
|
|
|
|
|
|
#define array_needsize(base,cur,cnt,init) \
|
|
|
|
|
if ((cnt) > cur) \
|
|
|
|
@ -124,7 +123,7 @@ get_clock (void)
|
|
|
|
|
int newcnt = cur; \
|
|
|
|
|
do \
|
|
|
|
|
{ \
|
|
|
|
|
newcnt = array_nextsize (newcnt); \
|
|
|
|
|
newcnt = array_roundsize (base, newcnt << 1); \
|
|
|
|
|
} \
|
|
|
|
|
while ((cnt) > newcnt); \
|
|
|
|
|
\
|
|
|
|
@ -167,13 +166,10 @@ static int pendingmax, pendingcnt;
|
|
|
|
|
static void
|
|
|
|
|
event (W w, int events)
|
|
|
|
|
{
|
|
|
|
|
if (w->active)
|
|
|
|
|
{
|
|
|
|
|
w->pending = ++pendingcnt;
|
|
|
|
|
array_needsize (pendings, pendingmax, pendingcnt, );
|
|
|
|
|
pendings [pendingcnt - 1].w = w;
|
|
|
|
|
pendings [pendingcnt - 1].events = events;
|
|
|
|
|
}
|
|
|
|
|
w->pending = ++pendingcnt;
|
|
|
|
|
array_needsize (pendings, pendingmax, pendingcnt, );
|
|
|
|
|
pendings [pendingcnt - 1].w = w;
|
|
|
|
|
pendings [pendingcnt - 1].events = events;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
@ -531,8 +527,6 @@ timers_reify (void)
|
|
|
|
|
{
|
|
|
|
|
struct ev_timer *w = timers [0];
|
|
|
|
|
|
|
|
|
|
event ((W)w, EV_TIMEOUT);
|
|
|
|
|
|
|
|
|
|
/* first reschedule or stop timer */
|
|
|
|
|
if (w->repeat)
|
|
|
|
|
{
|
|
|
|
@ -542,6 +536,8 @@ timers_reify (void)
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
ev_timer_stop (w); /* nonrepeating: stop timer */
|
|
|
|
|
|
|
|
|
|
event ((W)w, EV_TIMEOUT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|