aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/ngx_process.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2004-06-18 16:22:16 +0000
committerIgor Sysoev <igor@sysoev.ru>2004-06-18 16:22:16 +0000
commitf7290501f2426950f6c3ff7a2e3280bfaa831f0b (patch)
tree8455686936b2fcb6aa1c1d167d1faf2b45582966 /src/os/unix/ngx_process.c
parentbf88014f2fa8d047425a22b92c7f57d38b1dc498 (diff)
downloadnginx-f7290501f2426950f6c3ff7a2e3280bfaa831f0b.tar.gz
nginx-f7290501f2426950f6c3ff7a2e3280bfaa831f0b.zip
nginx-0.0.7-2004-06-18-20:22:16 import
Diffstat (limited to 'src/os/unix/ngx_process.c')
-rw-r--r--src/os/unix/ngx_process.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/os/unix/ngx_process.c b/src/os/unix/ngx_process.c
index 3d05a35ea..d2c1e30a5 100644
--- a/src/os/unix/ngx_process.c
+++ b/src/os/unix/ngx_process.c
@@ -6,9 +6,9 @@
static void ngx_execute_proc(ngx_cycle_t *cycle, void *data);
-ngx_int_t ngx_current_slot;
-ngx_int_t ngx_last_process;
+ngx_int_t ngx_process_slot;
ngx_socket_t ngx_channel;
+ngx_int_t ngx_last_process;
ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
@@ -31,6 +31,18 @@ ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle,
return NGX_ERROR;
}
+ if (ngx_nonblocking(ngx_processes[s].channel[0]) == -1) {
+ ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
+ ngx_nonblocking_n " failed while spawning \"%s\"", name);
+ return NGX_ERROR;
+ }
+
+ if (ngx_nonblocking(ngx_processes[s].channel[1]) == -1) {
+ ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
+ ngx_nonblocking_n " failed while spawning \"%s\"", name);
+ return NGX_ERROR;
+ }
+
on = 1;
if (ioctl(ngx_processes[s].channel[0], FIOASYNC, &on) == -1) {
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
@@ -45,7 +57,7 @@ ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle,
}
ngx_channel = ngx_processes[s].channel[1];
- ngx_current_slot = s;
+ ngx_process_slot = s;
pid = fork();