aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--auto/cc7
-rw-r--r--src/event/ngx_event.c16
-rw-r--r--src/os/unix/ngx_process_cycle.c10
3 files changed, 19 insertions, 14 deletions
diff --git a/auto/cc b/auto/cc
index 9cee8c161..59cbfbfe6 100644
--- a/auto/cc
+++ b/auto/cc
@@ -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);
}