diff options
author | Igor Sysoev <igor@sysoev.ru> | 2004-04-01 16:20:53 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2004-04-01 16:20:53 +0000 |
commit | dbb27765706e2d2f35b0af57c317b58d2d9d6ec9 (patch) | |
tree | 69760523cc77e8244f0f1d5c3c0247544a1179b9 /src/event/ngx_event_timer.h | |
parent | 205dc145c5d22613826927d6ae8ccd3a69d0e907 (diff) | |
download | nginx-dbb27765706e2d2f35b0af57c317b58d2d9d6ec9.tar.gz nginx-dbb27765706e2d2f35b0af57c317b58d2d9d6ec9.zip |
nginx-0.0.3-2004-04-01-20:20:53 import
Diffstat (limited to 'src/event/ngx_event_timer.h')
-rw-r--r-- | src/event/ngx_event_timer.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/event/ngx_event_timer.h b/src/event/ngx_event_timer.h index 21f261f88..0eae57043 100644 --- 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_timer(ngx_event_t *ev) 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); |