static APR_INLINE apt_bool_t mpf_timer_insert(mpf_timer_manager_t *manager, mpf_timer_t *timer) { mpf_timer_t *it; for(it = APR_RING_LAST(&manager->head); it != APR_RING_SENTINEL(&manager->head, mpf_timer_t, link); it = APR_RING_PREV(it, link)) { if(it->scheduled_time <= timer->scheduled_time) { APR_RING_INSERT_AFTER(it,timer,link); return TRUE; } } APR_RING_INSERT_HEAD(&manager->head,timer,mpf_timer_t,link); return TRUE; }
static APR_INLINE apt_bool_t apt_timer_insert(apt_timer_queue_t *timer_queue, apt_timer_t *timer) { apt_timer_t *it; for(it = APR_RING_LAST(&timer_queue->head); it != APR_RING_SENTINEL(&timer_queue->head, apt_timer_t, link); it = APR_RING_PREV(it, link)) { if(it->scheduled_time <= timer->scheduled_time) { APR_RING_INSERT_AFTER(it,timer,link); return TRUE; } } APR_RING_INSERT_HEAD(&timer_queue->head,timer,apt_timer_t,link); return TRUE; }