Mercurial > hg > nginx
diff src/event/ngx_event_timer.h @ 303:00c5660d2707
nginx-0.0.3-2004-04-01-20:20:53 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 01 Apr 2004 16:20:53 +0000 |
parents | b836469c37c3 |
children | bcbe876f4262 |
line wrap: on
line diff
--- a/src/event/ngx_event_timer.h +++ b/src/event/ngx_event_timer.h @@ -67,17 +67,28 @@ ngx_inline static void ngx_event_del_tim ngx_inline static void ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer) { - if (ev->timer_set) { - ngx_del_timer(ev); - } + ngx_int_t key; - ev->rbtree_key = (ngx_int_t) + key = (ngx_int_t) (ngx_elapsed_msec / NGX_TIMER_RESOLUTION * NGX_TIMER_RESOLUTION + timer) / NGX_TIMER_RESOLUTION; #if 0 (ngx_elapsed_msec + timer) / NGX_TIMER_RESOLUTION; #endif + if (ev->timer_set) { + if (key - ev->rbtree_key < 50) { + ngx_log_debug3(NGX_LOG_DEBUG_EVENT, ev->log, 0, + "event timer: %d, old: %d, new: %d", + ngx_event_ident(ev->data), ev->rbtree_key, key); + return; + } + + ngx_del_timer(ev); + } + + ev->rbtree_key = key; + ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, "event timer add: %d: %d", ngx_event_ident(ev->data), ev->rbtree_key);