Mercurial > hg > nginx-quic
comparison src/os/unix/ngx_process_cycle.c @ 449:3b1e8c9df9ad
nginx-0.1.0-2004-10-04-00:02:06 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 03 Oct 2004 20:02:06 +0000 |
parents | 241dc8092a33 |
children | 23fb87bddda1 |
comparison
equal
deleted
inserted
replaced
448:241dc8092a33 | 449:3b1e8c9df9ad |
---|---|
187 | 187 |
188 if (ngx_new_binary) { | 188 if (ngx_new_binary) { |
189 ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "start new workers"); | 189 ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "start new workers"); |
190 | 190 |
191 ngx_start_worker_processes(cycle, ccf->worker_processes, | 191 ngx_start_worker_processes(cycle, ccf->worker_processes, |
192 NGX_PROCESS_JUST_RESPAWN); | 192 NGX_PROCESS_RESPAWN); |
193 ngx_noaccepting = 0; | |
194 | |
193 continue; | 195 continue; |
194 } | 196 } |
195 | 197 |
196 ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "reconfiguring"); | 198 ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "reconfiguring"); |
197 | 199 |
311 ch.slot = ngx_process_slot; | 313 ch.slot = ngx_process_slot; |
312 ch.fd = ngx_processes[ngx_process_slot].channel[0]; | 314 ch.fd = ngx_processes[ngx_process_slot].channel[0]; |
313 | 315 |
314 for (i = 0; i < ngx_last_process; i++) { | 316 for (i = 0; i < ngx_last_process; i++) { |
315 | 317 |
316 if (i == ngx_process_slot || ngx_processes[i].pid == -1) { | 318 if (i == ngx_process_slot |
319 || ngx_processes[i].pid == -1 | |
320 || ngx_processes[i].channel[0] == -1) | |
321 { | |
317 continue; | 322 continue; |
318 } | 323 } |
319 | 324 |
320 ngx_log_debug5(NGX_LOG_DEBUG_CORE, cycle->log, 0, | 325 ngx_log_debug6(NGX_LOG_DEBUG_CORE, cycle->log, 0, |
321 "pass channel s:%d pid:" PID_T_FMT | 326 "pass channel s:%d pid:" PID_T_FMT |
322 " fd:%d to s:%d pid:" PID_T_FMT, | 327 " fd:%d to s:%d pid:" PID_T_FMT " fd:%d", |
323 ch.slot, ch.pid, ch.fd, | 328 ch.slot, ch.pid, ch.fd, |
324 i, ngx_processes[i].pid); | 329 i, ngx_processes[i].pid, |
330 ngx_processes[i].channel[0]); | |
325 | 331 |
326 /* TODO: NGX_AGAIN */ | 332 /* TODO: NGX_AGAIN */ |
327 | 333 |
328 ngx_write_channel(ngx_processes[i].channel[0], | 334 ngx_write_channel(ngx_processes[i].channel[0], |
329 &ch, sizeof(ngx_channel_t), cycle->log); | 335 &ch, sizeof(ngx_channel_t), cycle->log); |
375 | 381 |
376 ch.fd = -1; | 382 ch.fd = -1; |
377 | 383 |
378 | 384 |
379 for (i = 0; i < ngx_last_process; i++) { | 385 for (i = 0; i < ngx_last_process; i++) { |
386 | |
387 ngx_log_debug7(NGX_LOG_DEBUG_EVENT, cycle->log, 0, | |
388 "child: %d " PID_T_FMT " e:%d t:%d d:%d r:%d j:%d", | |
389 i, | |
390 ngx_processes[i].pid, | |
391 ngx_processes[i].exiting, | |
392 ngx_processes[i].exited, | |
393 ngx_processes[i].detached, | |
394 ngx_processes[i].respawn, | |
395 ngx_processes[i].just_respawn); | |
380 | 396 |
381 if (ngx_processes[i].detached || ngx_processes[i].pid == -1) { | 397 if (ngx_processes[i].detached || ngx_processes[i].pid == -1) { |
382 continue; | 398 continue; |
383 } | 399 } |
384 | 400 |
630 | 646 |
631 if (n == ngx_process_slot) { | 647 if (n == ngx_process_slot) { |
632 continue; | 648 continue; |
633 } | 649 } |
634 | 650 |
651 if (ngx_processes[n].channel[1] == -1) { | |
652 continue; | |
653 } | |
654 | |
635 if (close(ngx_processes[n].channel[1]) == -1) { | 655 if (close(ngx_processes[n].channel[1]) == -1) { |
636 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, | 656 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, |
637 "close() failed"); | 657 "close() failed"); |
638 } | 658 } |
639 } | 659 } |