comparison src/event/modules/ngx_eventport_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
403 n = port_getn(ep, event_list, (u_int) nevents, &events, tp); 403 n = port_getn(ep, event_list, (u_int) nevents, &events, tp);
404 404
405 err = ngx_errno; 405 err = ngx_errno;
406 406
407 if (flags & NGX_UPDATE_TIME) { 407 if (flags & NGX_UPDATE_TIME) {
408 ngx_time_update(0, 0); 408 ngx_time_update();
409 } 409 }
410 410
411 if (n == -1) { 411 if (n == -1) {
412 if (err == ETIME) { 412 if (err == ETIME) {
413 if (timer != NGX_TIMER_INFINITE) { 413 if (timer != NGX_TIMER_INFINITE) {
437 ngx_mutex_lock(ngx_posted_events_mutex); 437 ngx_mutex_lock(ngx_posted_events_mutex);
438 438
439 for (i = 0; i < events; i++) { 439 for (i = 0; i < events; i++) {
440 440
441 if (event_list[i].portev_source == PORT_SOURCE_TIMER) { 441 if (event_list[i].portev_source == PORT_SOURCE_TIMER) {
442 ngx_time_update(0, 0); 442 ngx_time_update();
443 continue; 443 continue;
444 } 444 }
445 445
446 ev = event_list[i].portev_user; 446 ev = event_list[i].portev_user;
447 447