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 }