cooperative-computing-lab/cctools — pull request #309 by batrick (2013-11-13 22:31:05+00:00)
Title: Do not wake parents when child is blocked on wait4.

When a parent is waiting on a child that is waiting on a grandchild, Parrot would wrongly tell the parent that the child has exited.

For #304, this happens for the command:

cat downloads.url | xargs wget

xargs waits for wget to complete. The shell is simultaneously waiting for xargs.

I think the code originally thought that a process waiting is "stopped". This is incorrect. [And, in fact, in Parrot a process is never in a stopped state as Parrot always continues a stopped process:

https://github.com/cooperative-computing-lab/cctools/blob/c85f53837198f4c067aba7443f2fe79c6e34ee49/parrot/src/pfs_main.cc#L334

]

Fixes #304.