aboutsummaryrefslogtreecommitdiff
path: root/src/event/ngx_event_timer.h
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2004-04-01 16:20:53 +0000
committerIgor Sysoev <igor@sysoev.ru>2004-04-01 16:20:53 +0000
commitdbb27765706e2d2f35b0af57c317b58d2d9d6ec9 (patch)
tree69760523cc77e8244f0f1d5c3c0247544a1179b9 /src/event/ngx_event_timer.h
parent205dc145c5d22613826927d6ae8ccd3a69d0e907 (diff)
downloadnginx-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.h19
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);