Ignoring SIGCHLD causes a race leading to the occasional hang of init
authorEric Andersen <andersen@codepoet.org>
Wed, 25 Sep 2002 15:08:40 +0000 (15:08 -0000)
committerEric Andersen <andersen@codepoet.org>
Wed, 25 Sep 2002 15:08:40 +0000 (15:08 -0000)
when init will wait() on itself in waitfor() when the child exits before
init is scheduled to run.  Letting init hang is very seriously bad.
 -Erik

init/init.c

index ab2d0ea91efb79ad0e4377f4af8a34c1e3414a99..989babff7f0d69766040670cdadda8dc3f616eac 100644 (file)
@@ -1063,7 +1063,6 @@ extern int init_main(int argc, char **argv)
        signal(SIGCONT, cont_handler);
        signal(SIGSTOP, stop_handler);
        signal(SIGTSTP, stop_handler);
-       signal(SIGCHLD, SIG_IGN);
 
        /* Turn off rebooting via CTL-ALT-DEL -- we get a 
         * SIGINT on CAD so we can shut things down gracefully... */