|
Lines 502-507
server_loop(pid_t pid, int fdin_arg, int
Link Here
|
| 502 |
child_terminated = 0; |
502 |
child_terminated = 0; |
| 503 |
mysignal(SIGCHLD, sigchld_handler); |
503 |
mysignal(SIGCHLD, sigchld_handler); |
| 504 |
|
504 |
|
|
|
505 |
/* XXX */ |
| 506 |
if ((wait_pid = waitpid(-1, &wait_status, WNOHANG)) > 0) |
| 507 |
waiting_termination = 1; |
| 508 |
|
| 505 |
/* Initialize our global variables. */ |
509 |
/* Initialize our global variables. */ |
| 506 |
fdin = fdin_arg; |
510 |
fdin = fdin_arg; |
| 507 |
fdout = fdout_arg; |
511 |
fdout = fdout_arg; |
|
Lines 674-682
server_loop(pid_t pid, int fdin_arg, int
Link Here
|
| 674 |
/* We no longer want our SIGCHLD handler to be called. */ |
678 |
/* We no longer want our SIGCHLD handler to be called. */ |
| 675 |
mysignal(SIGCHLD, SIG_DFL); |
679 |
mysignal(SIGCHLD, SIG_DFL); |
| 676 |
|
680 |
|
| 677 |
while ((wait_pid = waitpid(-1, &wait_status, 0)) < 0) |
681 |
while (wait_pid < 0) { |
|
|
682 |
wait_pid = waitpid(-1, &wait_status, 0); |
| 678 |
if (errno != EINTR) |
683 |
if (errno != EINTR) |
| 679 |
packet_disconnect("wait: %.100s", strerror(errno)); |
684 |
packet_disconnect("wait: %.100s", strerror(errno)); |
|
|
685 |
} |
| 680 |
if (wait_pid != pid) |
686 |
if (wait_pid != pid) |
| 681 |
error("Strange, wait returned pid %ld, expected %ld", |
687 |
error("Strange, wait returned pid %ld, expected %ld", |
| 682 |
(long)wait_pid, (long)pid); |
688 |
(long)wait_pid, (long)pid); |