diff options
author | Igor Sysoev <igor@sysoev.ru> | 2005-10-21 19:12:18 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2005-10-21 19:12:18 +0000 |
commit | 055951dc96d1ba9457cdce04bad60fe50b6ea7be (patch) | |
tree | 1ed865f8a532be30837787ff3ee0305f4d86596a /src/event/ngx_event.c | |
parent | b6b31c91be09794b3689bb705b29cc8cb2f7258a (diff) | |
download | nginx-release-0.3.5.tar.gz nginx-release-0.3.5.zip |
nginx-0.3.5-RELEASE importrelease-0.3.5
*) Bugfix: the segmentation fault may occurred if the IMAP/POP3 login
was changed by authorization server; the bug had appeared in 0.2.2.
*) Bugfix: the accept mutex did not work and all connections were
handled by one process; the bug had appeared in 0.3.3.
*) Bugfix: the timeout did not work if the "rtsig" method and the
"timer_resolution" directive were used.
Diffstat (limited to 'src/event/ngx_event.c')
-rw-r--r-- | src/event/ngx_event.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c index 6dc6e3cb5..4775e5d9b 100644 --- a/src/event/ngx_event.c +++ b/src/event/ngx_event.c @@ -199,7 +199,7 @@ void ngx_process_events_and_timers(ngx_cycle_t *cycle) { ngx_uint_t flags; - ngx_msec_t timer; + ngx_msec_t timer, delta; if (ngx_timer_resolution) { timer = NGX_TIMER_INFINITE; @@ -240,16 +240,25 @@ ngx_process_events_and_timers(ngx_cycle_t *cycle) } } + delta = ngx_current_msec; + (void) ngx_process_events(cycle, timer, flags); - ngx_event_expire_timers(); + delta = ngx_current_msec - delta; + + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, + "timer delta: %M", delta); + + if (delta) { + ngx_event_expire_timers(); + } if (ngx_posted_accept_events) { ngx_event_process_posted(cycle, &ngx_posted_accept_events); } if (ngx_accept_mutex_held) { - ngx_accept_mutex = 0; + *ngx_accept_mutex = 0; } ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, |