Using strace as you (Simon) suggested I confirmed that not all my signals
are getting delivered. In my test, I install a sigCHLD handler and fork
two processes. Both processes terminate as expected, but only one signal
is delivered. `ps` confirms that the other child process has terminated:
It
> After much study I have a new theory. It appears that the
> pipe machinery
> is working fine, but that sometimes my program fails to
> "reap" all of its
> terminated child processes. I'm using a `sigCHLD` signal handler that
> does `getAnyProcessStatus True False` each time it's invoked.
>
> I have some GHC-compiled programs that run OK under Sparc/Solaris but
> hang under x86/Linux. I'm using GHC 5.02.3 on both systems (although
> I've tried GHC 5.03.20020410 on Linux with the same failures). I'm
> debugging to narrow the problem down. My current suspicion is that
> closing the
In local.glasgow-haskell-bugs, you wrote:
> After much study I have a new theory. It appears that the pipe machinery
> is working fine, but that sometimes my program fails to "reap" all of its
> terminated child processes. I'm using a `sigCHLD` signal handler that
> does `getAnyProcessStatus Tru