aboutsummaryrefslogtreecommitdiff
path: root/src/event/ngx_event.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2005-10-21 19:12:18 +0000
committerIgor Sysoev <igor@sysoev.ru>2005-10-21 19:12:18 +0000
commit055951dc96d1ba9457cdce04bad60fe50b6ea7be (patch)
tree1ed865f8a532be30837787ff3ee0305f4d86596a /src/event/ngx_event.c
parentb6b31c91be09794b3689bb705b29cc8cb2f7258a (diff)
downloadnginx-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.c15
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,