Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2005-10-07 17:30:52 +0400
committerIgor Sysoev <igor@sysoev.ru>2005-10-07 17:30:52 +0400
commit208eed22101e987a370036fa3851ce81c088c599 (patch)
tree40f2aa55bb0415eef08415373d380577eb18561f /src/event/ngx_event_timer.c
parent12b7a12a2d2cbf4a98a23c2d6c0c06ff588d2d70 (diff)
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.c23
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,