diff options
author | Igor Sysoev <igor@sysoev.ru> | 2005-10-07 13:30:52 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2005-10-07 13:30:52 +0000 |
commit | 208eed22101e987a370036fa3851ce81c088c599 (patch) | |
tree | 40f2aa55bb0415eef08415373d380577eb18561f /src/event/ngx_event_timer.c | |
parent | 12b7a12a2d2cbf4a98a23c2d6c0c06ff588d2d70 (diff) | |
download | nginx-release-0.3.0.tar.gz nginx-release-0.3.0.zip |
nginx-0.3.0-RELEASE importrelease-0.3.0
*) Change: the 10-days live time limit of worker process was
eliminated. The limit was introduced because of millisecond timers
overflow.
Diffstat (limited to 'src/event/ngx_event_timer.c')
-rw-r--r-- | src/event/ngx_event_timer.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c index 4d6c647da..c3d3c7ee8 100644 --- a/src/event/ngx_event_timer.c +++ b/src/event/ngx_event_timer.c @@ -60,28 +60,18 @@ ngx_event_find_timer(void) ngx_mutex_unlock(ngx_event_timer_mutex); - timer = (ngx_msec_t) - (node->key * NGX_TIMER_RESOLUTION - - ngx_elapsed_msec / NGX_TIMER_RESOLUTION * NGX_TIMER_RESOLUTION); -#if 0 - (node->key * NGX_TIMER_RESOLUTION - ngx_elapsed_msec); -#endif + timer = (ngx_msec_t) node->key - ngx_current_time; return timer > 0 ? timer : 0 ; } void -ngx_event_expire_timers(ngx_msec_t timer) +ngx_event_expire_timers(void) { ngx_event_t *ev; ngx_rbtree_t *node; - if (timer < 0) { - /* avoid the endless loop if the time goes backward for some reason */ - timer = 0; - } - for ( ;; ) { if (ngx_event_timer_rbtree == &ngx_event_timer_sentinel) { @@ -95,8 +85,11 @@ ngx_event_expire_timers(ngx_msec_t timer) node = ngx_rbtree_min((ngx_rbtree_t *) ngx_event_timer_rbtree, &ngx_event_timer_sentinel); - if (node->key <= (ngx_msec_t) - (ngx_old_elapsed_msec + timer) / NGX_TIMER_RESOLUTION) + /* node->key <= ngx_current_time */ + + if ((ngx_rbtree_key_int_t) node->key + - (ngx_rbtree_key_int_t) ngx_current_time + <= 0) { ev = (ngx_event_t *) ((char *) node - offsetof(ngx_event_t, rbtree_key)); @@ -120,7 +113,7 @@ ngx_event_expire_timers(ngx_msec_t timer) #endif ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, - "event timer del: %d: %i", + "event timer del: %d: %M", ngx_event_ident(ev->data), ev->rbtree_key); ngx_rbtree_delete((ngx_rbtree_t **) &ngx_event_timer_rbtree, |