# HG changeset patch # User Igor Sysoev # Date 1268404307 0 # Node ID 0299cf5856fc4653e5e29ce626b0641c1065d288 # Parent 65481698535c7511946ee2af4b6aee069e7d0e86 do not update time in the timer signal handler, since localtime_r() is not Async-Signal-Safe function diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c --- a/src/event/modules/ngx_devpoll_module.c +++ b/src/event/modules/ngx_devpoll_module.c @@ -371,7 +371,7 @@ ngx_devpoll_process_events(ngx_cycle_t * err = (events == -1) ? ngx_errno : 0; - if (flags & NGX_UPDATE_TIME) { + if (flags & NGX_UPDATE_TIME || ngx_event_timer_alarm) { ngx_time_update(0, 0); } diff --git a/src/event/modules/ngx_epoll_module.c b/src/event/modules/ngx_epoll_module.c --- a/src/event/modules/ngx_epoll_module.c +++ b/src/event/modules/ngx_epoll_module.c @@ -531,7 +531,7 @@ ngx_epoll_process_events(ngx_cycle_t *cy err = (events == -1) ? ngx_errno : 0; - if (flags & NGX_UPDATE_TIME) { + if (flags & NGX_UPDATE_TIME || ngx_event_timer_alarm) { ngx_time_update(0, 0); } diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c --- a/src/event/modules/ngx_kqueue_module.c +++ b/src/event/modules/ngx_kqueue_module.c @@ -537,7 +537,7 @@ ngx_kqueue_process_events(ngx_cycle_t *c err = (events == -1) ? ngx_errno : 0; - if (flags & NGX_UPDATE_TIME) { + if (flags & NGX_UPDATE_TIME || ngx_event_timer_alarm) { ngx_time_update(0, 0); } diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c --- a/src/event/modules/ngx_poll_module.c +++ b/src/event/modules/ngx_poll_module.c @@ -262,7 +262,7 @@ ngx_poll_process_events(ngx_cycle_t *cyc err = (ready == -1) ? ngx_errno : 0; - if (flags & NGX_UPDATE_TIME) { + if (flags & NGX_UPDATE_TIME || ngx_event_timer_alarm) { ngx_time_update(0, 0); } diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c --- a/src/event/modules/ngx_select_module.c +++ b/src/event/modules/ngx_select_module.c @@ -262,7 +262,7 @@ ngx_select_process_events(ngx_cycle_t *c err = (ready == -1) ? ngx_errno : 0; - if (flags & NGX_UPDATE_TIME) { + if (flags & NGX_UPDATE_TIME || ngx_event_timer_alarm) { ngx_time_update(0, 0); } diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c --- a/src/event/ngx_event.c +++ b/src/event/ngx_event.c @@ -562,8 +562,6 @@ ngx_timer_signal_handler(int signo) { ngx_event_timer_alarm = 1; - ngx_time_update(0, 0); - #if 1 ngx_log_debug0(NGX_LOG_DEBUG_EVENT, ngx_cycle->log, 0, "timer signal"); #endif