Mercurial > hg > nginx
comparison src/event/modules/ngx_kqueue_module.c @ 3587:e1409e56ba7c stable-0.7
merge r3473, r3474, r3385, r3386, r3537:
signal processing stability:
*) use sys_errlist[] in signal handler instead
of non Async-Signal-Safe strerror_r()
*) do not update time in the timer signal handler,
since localtime_r() is not Async-Signal-Safe function
*) use previously cached GMT offset value to update time from a signal handler
*) change ngx_time_update() interface since there are no notification methods
those return time
*) introduce ngx_time_sigsafe_update() to update the error log time only
*) change ngx_time_update() interface
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 07 Jun 2010 10:35:08 +0000 |
parents | 2efa8d2fcde1 |
children |
comparison
equal
deleted
inserted
replaced
3586:2d21e02fc01d | 3587:e1409e56ba7c |
---|---|
541 err = ngx_errno; | 541 err = ngx_errno; |
542 } else { | 542 } else { |
543 err = 0; | 543 err = 0; |
544 } | 544 } |
545 | 545 |
546 if (flags & NGX_UPDATE_TIME) { | 546 if (flags & NGX_UPDATE_TIME || ngx_event_timer_alarm) { |
547 ngx_time_update(0, 0); | 547 ngx_time_update(); |
548 } | 548 } |
549 | 549 |
550 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, | 550 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0, |
551 "kevent events: %d", events); | 551 "kevent events: %d", events); |
552 | 552 |
593 } | 593 } |
594 | 594 |
595 #if (NGX_HAVE_TIMER_EVENT) | 595 #if (NGX_HAVE_TIMER_EVENT) |
596 | 596 |
597 if (event_list[i].filter == EVFILT_TIMER) { | 597 if (event_list[i].filter == EVFILT_TIMER) { |
598 ngx_time_update(0, 0); | 598 ngx_time_update(); |
599 continue; | 599 continue; |
600 } | 600 } |
601 | 601 |
602 #endif | 602 #endif |
603 | 603 |