diff options
-rw-r--r-- | proc/wait.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/proc/wait.c b/proc/wait.c index d192b510..18ea769e 100644 --- a/proc/wait.c +++ b/proc/wait.c @@ -116,7 +116,7 @@ reparent_zombies (struct proc *p) { struct zombie *z, *prevz; struct wait_c *w = &startup_proc->p_continuation.wait_c; - int initwoken = 0; + int initwoken = 0, initsignalled = 0; for (z = zombie_list, prevz = 0; z; prevz = z, z = z->next) { @@ -124,6 +124,12 @@ reparent_zombies (struct proc *p) continue; z->parent = startup_proc; + if (!initsignalled) + { + send_signal (startup_proc->p_msgport, SIGCHLD, startup_proc->p_task); + initsignalled = 1; + } + if (initwoken || !startup_proc->p_waiting) continue; |