# HG changeset patch # User Valentin Bartenev # Date 1408959426 -14400 # Node ID 0f53e5fb7205b11cdf499dd037a3218c10a8263d # Parent 1f513d7f1b4523eb141171cc6f2aa0c189d0496b Events: simplified cycle in ngx_event_expire_timers(). diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c --- a/src/event/ngx_event_timer.c +++ b/src/event/ngx_event_timer.c @@ -67,32 +67,30 @@ ngx_event_expire_timers(void) node = ngx_rbtree_min(root, sentinel); - /* node->key <= ngx_current_time */ + /* node->key > ngx_current_time */ - if ((ngx_msec_int_t) (node->key - ngx_current_msec) <= 0) { - ev = (ngx_event_t *) ((char *) node - offsetof(ngx_event_t, timer)); + if ((ngx_msec_int_t) (node->key - ngx_current_msec) > 0) { + return; + } - ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, - "event timer del: %d: %M", - ngx_event_ident(ev->data), ev->timer.key); + ev = (ngx_event_t *) ((char *) node - offsetof(ngx_event_t, timer)); - ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->timer); + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, + "event timer del: %d: %M", + ngx_event_ident(ev->data), ev->timer.key); + + ngx_rbtree_delete(&ngx_event_timer_rbtree, &ev->timer); #if (NGX_DEBUG) - ev->timer.left = NULL; - ev->timer.right = NULL; - ev->timer.parent = NULL; + ev->timer.left = NULL; + ev->timer.right = NULL; + ev->timer.parent = NULL; #endif - ev->timer_set = 0; - - ev->timedout = 1; + ev->timer_set = 0; - ev->handler(ev); + ev->timedout = 1; - continue; - } - - break; + ev->handler(ev); } }