From: Eric Andersen Date: Tue, 17 Dec 2002 09:48:16 +0000 (-0000) Subject: Odd. I never brought this forward from bb.stable. Should handle X-Git-Tag: 1_00_pre1~275 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=cf1fee06a5e4b18b97f9b279694baae403d7289b;p=oweals%2Fbusybox.git Odd. I never brought this forward from bb.stable. Should handle reaping child processes better. -Erik --- diff --git a/init/init.c b/init/init.c index bb1f383b3..91a19c5d1 100644 --- a/init/init.c +++ b/init/init.c @@ -1141,7 +1141,7 @@ extern int init_main(int argc, char **argv) /* Wait for a child process to exit */ wpid = wait(&status); - if (wpid > 0) { + while (wpid > 0) { /* Find out who died and clean up their corpse */ for (a = init_action_list; a; a = a->next) { if (a->pid == wpid) { @@ -1152,6 +1152,8 @@ extern int init_main(int argc, char **argv) "Scheduling it for restart.\n", a->command, wpid); } } + /* see if anyone else is waiting to be reaped */ + wpid = waitpid (-1, &status, WNOHANG); } } }