| 641 |
{ |
{ |
| 642 |
SYS_child_exit = 0; |
SYS_child_exit = 0; |
| 643 |
|
|
| 644 |
pid = waitpid(-1, NULL, WNOHANG); |
pid = waitpid(-1, &ret, WNOHANG); |
| 645 |
if (pid > 0) |
if (pid > 0) |
| 646 |
{ |
{ |
| 647 |
SYS_child_exit = 1; // Retry waitid |
SYS_child_exit = 1; // Retry waitid |
|
|
|
| 648 |
SYS_child_process_count--; |
SYS_child_process_count--; |
| 649 |
log_common("Child process (%d) exited\n", pid); |
|
| 650 |
|
if (WIFEXITED(ret)) |
| 651 |
|
{ |
| 652 |
|
log_common("Child process (%d) exited, status=%d\n", pid, WEXITSTATUS(ret)); |
| 653 |
|
} |
| 654 |
|
else if (WIFSIGNALED(ret)) |
| 655 |
|
{ |
| 656 |
|
log_common("Child process (%d) is killed, status=%d\n", pid, WTERMSIG(ret)); |
| 657 |
|
} |
| 658 |
|
else |
| 659 |
|
{ |
| 660 |
|
log_common("Child process (%d) exited abnormally, status=%d\n", pid, ret); |
| 661 |
|
} |
| 662 |
|
|
| 663 |
if (pid != section_list_loader_pid) |
if (pid != section_list_loader_pid) |
| 664 |
{ |
{ |