]> git.kaiwu.me - nginx.git/commitdiff
do not update time in the timer signal handler,
authorIgor Sysoev <igor@sysoev.ru>
Fri, 12 Mar 2010 14:31:47 +0000 (14:31 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Fri, 12 Mar 2010 14:31:47 +0000 (14:31 +0000)
since localtime_r() is not Async-Signal-Safe function

src/event/modules/ngx_devpoll_module.c
src/event/modules/ngx_epoll_module.c
src/event/modules/ngx_kqueue_module.c
src/event/modules/ngx_poll_module.c
src/event/modules/ngx_select_module.c
src/event/ngx_event.c

index 3dd22303f7d420fb9428f55520d25b612bed40f9..f133b7249101acd9007f3fae7767e80698c3b8a7 100644 (file)
@@ -371,7 +371,7 @@ ngx_devpoll_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
 
     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);
     }
 
index dc5d4226e040124a4889e57078c4df1ed8f37393..3c1ca2ac2fd46df5c35a272bf69ffead4dff6f2c 100644 (file)
@@ -531,7 +531,7 @@ ngx_epoll_process_events(ngx_cycle_t *cycle, ngx_msec_t timer, ngx_uint_t flags)
 
     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);
     }
 
index 02230ca7df9013c1639c4b0b0841185e4c38ea54..b6dfa8fa1c38585a325660e253fab1ed947cb7e1 100644 (file)
@@ -537,7 +537,7 @@ ngx_kqueue_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
 
     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);
     }
 
index 10098d61e8bc43f1c23adde37675f290661405b2..3b98c19fe9ccefe0e7d7330620f509e6c569280c 100644 (file)
@@ -262,7 +262,7 @@ ngx_poll_process_events(ngx_cycle_t *cycle, ngx_msec_t timer, ngx_uint_t flags)
 
     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);
     }
 
index e76da5b9fd82b2de7491b8c68d49bcd77403805d..9f5b43b712c45369bfd28c616c944cc0dd9b1c51 100644 (file)
@@ -262,7 +262,7 @@ ngx_select_process_events(ngx_cycle_t *cycle, ngx_msec_t timer,
 
     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);
     }
 
index 9c13eac47ee6637dd96889492c0239708ac469c6..3922b0e20b9216b4c796830914454fcc7ec6d026 100644 (file)
@@ -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