aboutsummaryrefslogtreecommitdiff
path: root/src/event/modules/ngx_poll_module.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/event/modules/ngx_poll_module.c')
-rw-r--r--src/event/modules/ngx_poll_module.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index ffe59d49f..968180dbb 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -277,14 +277,22 @@ int ngx_poll_process_events(ngx_cycle_t *cycle)
expire = 0;
} else {
- timer = ngx_event_find_timer();
+ for ( ;; ) {
+ timer = ngx_event_find_timer();
- if (timer == -1) {
- timer = 0;
- expire = 1;
+ if (timer != 0) {
+ break;
+ }
+
+ ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
+ "poll expired timer");
+
+ ngx_event_expire_timers(0);
+ }
+
+ /* NGX_TIMER_INFINITE == INFTIM */
- } else if (timer == 0) {
- timer = (ngx_msec_t) INFTIM;
+ if (timer == NGX_TIMER_INFINITE) {
expire = 0;
} else {
@@ -308,7 +316,7 @@ int ngx_poll_process_events(ngx_cycle_t *cycle)
}
if (ngx_accept_mutex_held == 0
- && (timer == (ngx_msec_t) INFTIM || timer > ngx_accept_mutex_delay))
+ && (timer == NGX_TIMER_INFINITE || timer > ngx_accept_mutex_delay))
{
timer = ngx_accept_mutex_delay;
expire = 0;
@@ -341,7 +349,7 @@ int ngx_poll_process_events(ngx_cycle_t *cycle)
return NGX_ERROR;
}
- if (timer != (ngx_msec_t) INFTIM) {
+ if (timer != NGX_TIMER_INFINITE) {
delta = ngx_elapsed_msec - delta;
ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0,