From cf1fee06a5e4b18b97f9b279694baae403d7289b Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Tue, 17 Dec 2002 09:48:16 +0000 Subject: [PATCH] Odd. I never brought this forward from bb.stable. Should handle reaping child processes better. -Erik --- init/init.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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); } } }