diff options
-rw-r--r-- | auto/cc | 7 | ||||
-rw-r--r-- | src/event/ngx_event.c | 16 | ||||
-rw-r--r-- | src/os/unix/ngx_process_cycle.c | 10 |
3 files changed, 19 insertions, 14 deletions
@@ -4,7 +4,8 @@ CFLAGS="$CFLAGS $CC_OPT" case $CC in *gcc*) - # gcc 2.7.2.3, 2.8.1, 2.95.4, 3.3.2, 3.3.3, 3.4 + # gcc 2.7.2.3, 2.8.1, 2.95.4, + # 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4 # optimization #CFLAGS="$CFLAGS -O2 -fomit-frame-pointer" @@ -89,7 +90,7 @@ case $CC in *icc) - # Intel C++ compiler 7.1 + # Intel C++ compiler 7.1, 8.0 # optimization CFLAGS="$CFLAGS -O" @@ -241,7 +242,7 @@ case $CC in wcl386) - # Open Watcom C 1.0 + # Open Watcom C 1.0, 1.2 # optimization diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c index c2c7c892e..e9ec48ece 100644 --- a/src/event/ngx_event.c +++ b/src/event/ngx_event.c @@ -223,7 +223,7 @@ static ngx_int_t ngx_event_process_init(ngx_cycle_t *cycle) if (ngx_accept_mutex_ptr && ccf->worker_processes > 1 && ecf->accept_mutex) { ngx_accept_mutex = ngx_accept_mutex_ptr; - ngx_accept_mutex_held = 1; + ngx_accept_mutex_held = 0; ngx_accept_mutex_delay = ecf->accept_mutex_delay; } @@ -371,15 +371,13 @@ static ngx_int_t ngx_event_process_init(ngx_cycle_t *cycle) rev->event_handler = &ngx_event_accept; - if (ngx_event_flags & NGX_USE_SIGIO_EVENT) { - - if (ngx_accept_mutex) { - ngx_accept_mutex_held = 0; + if (ngx_accept_mutex) { + continue; + } - } else { - if (ngx_add_conn(c) == NGX_ERROR) { - return NGX_ERROR; - } + if (ngx_event_flags & NGX_USE_SIGIO_EVENT) { + if (ngx_add_conn(c) == NGX_ERROR) { + return NGX_ERROR; } } else { diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c index 2a4575455..21b28cf9f 100644 --- a/src/os/unix/ngx_process_cycle.c +++ b/src/os/unix/ngx_process_cycle.c @@ -514,7 +514,10 @@ static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data) && ngx_event_timer_rbtree == &ngx_event_timer_sentinel) { ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "exiting"); - ngx_destroy_pool(cycle->pool); + /* + * we do not destroy cycle->pool here because a signal handler + * that uses cycle->log can be called at this point + */ exit(0); } @@ -524,7 +527,10 @@ static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data) if (ngx_terminate) { ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "exiting"); - ngx_destroy_pool(cycle->pool); + /* + * we do not destroy cycle->pool here because a signal handler + * that uses cycle->log can be called at this point + */ exit(0); } |