changeset 3473:0299cf5856fc

do not update time in the timer signal handler, since localtime_r() is not Async-Signal-Safe function
author Igor Sysoev <igor@sysoev.ru>
date Fri, 12 Mar 2010 14:31:47 +0000
parents 65481698535c
children d4c4cfdffe30
files 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
diffstat 6 files changed, 5 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/event/modules/ngx_devpoll_module.c	Fri Mar 12 11:15:26 2010 +0000
+++ b/src/event/modules/ngx_devpoll_module.c	Fri Mar 12 14:31:47 2010 +0000
@@ -371,7 +371,7 @@
 
     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);
     }
 
--- a/src/event/modules/ngx_epoll_module.c	Fri Mar 12 11:15:26 2010 +0000
+++ b/src/event/modules/ngx_epoll_module.c	Fri Mar 12 14:31:47 2010 +0000
@@ -531,7 +531,7 @@
 
     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);
     }
 
--- a/src/event/modules/ngx_kqueue_module.c	Fri Mar 12 11:15:26 2010 +0000
+++ b/src/event/modules/ngx_kqueue_module.c	Fri Mar 12 14:31:47 2010 +0000
@@ -537,7 +537,7 @@
 
     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);
     }
 
--- a/src/event/modules/ngx_poll_module.c	Fri Mar 12 11:15:26 2010 +0000
+++ b/src/event/modules/ngx_poll_module.c	Fri Mar 12 14:31:47 2010 +0000
@@ -262,7 +262,7 @@
 
     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);
     }
 
--- a/src/event/modules/ngx_select_module.c	Fri Mar 12 11:15:26 2010 +0000
+++ b/src/event/modules/ngx_select_module.c	Fri Mar 12 14:31:47 2010 +0000
@@ -262,7 +262,7 @@
 
     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);
     }
 
--- a/src/event/ngx_event.c	Fri Mar 12 11:15:26 2010 +0000
+++ b/src/event/ngx_event.c	Fri Mar 12 14:31:47 2010 +0000
@@ -562,8 +562,6 @@
 {
     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