int zloop_timer (zloop_t *self, size_t delay, size_t times, zloop_timer_fn handler, void *arg) { assert (self); // Catch excessive use of timers if (self->max_timers && zlistx_size (self->timers) == self->max_timers) { zsys_error ("zloop: timer limit reached (max=%d)", self->max_timers); return -1; } int timer_id = s_next_timer_id (self); s_timer_t *timer = s_timer_new (timer_id, delay, times, handler, arg); if (timer) { timer->list_handle = zlistx_add_end (self->timers, timer); if (!timer->list_handle) { s_timer_destroy (&timer); return -1; } if (self->verbose) zsys_debug ("zloop: register timer id=%d delay=%d times=%d", timer_id, (int) delay, (int) times); return timer_id; } else return -1; }
int zloop_timer (zloop_t *self, size_t delay, size_t times, zloop_fn handler, void *arg) { assert (self); s_timer_t *timer = s_timer_new (delay, times, handler, arg); if (!timer) return -1; if (zlist_append (self->timers, timer)) return -1; if (self->verbose) zclock_log ("I: zloop: register timer delay=%d times=%d", delay, times); return 0; }
int zloop_timer (zloop_t *self, size_t delay, size_t times, zloop_timer_fn handler, void *arg) { assert (self); int timer_id = s_next_timer_id (self); s_timer_t *timer = s_timer_new (timer_id, delay, times, handler, arg); if (!timer) return -1; if (zlist_append (self->timers, timer)) return -1; if (self->verbose) #ifdef __WINDOWS__ zsys_debug ("zloop: register timer id=%d delay=%u times=%u", timer_id, delay, times); #else zsys_debug ("zloop: register timer id=%d delay=%zd times=%zd", timer_id, delay, times); #endif return timer_id; }