sigCHLD signal handling (Was: Re: pipes? threadWaitRead?)
Volker Stolz
stolz at i2.informatik.rwth-aachen.de
Mon Jul 15 10:10:19 EDT 2002
In local.glasgow-haskell-bugs, you wrote:
> Am 10. Jul 2002 um 22:21 CEST schrieb Dean Herington:
>> The first issue I confronted is that the get*ProcessStatus routines return
>> an error rather than "nothing" if there is no candidate child process.
>
> Yes, `waitpid' might return with EINTR which will cause an exception
> (I just checked, it did). I'll try to devise a fix for PosixProcPrim.
That's ECHILD, not EINTR.
The only nice way to figure this out might be keeping a global counter
(in an MVar), increasing it on forkProcess() and counting it down for
each "awaited" child. That way, you could safely loop on `waitpid' if
you know there should still be a child around (and you'll get `Nothing'
if it's not done yet).
Volker
--
http://news.bbc.co.uk: `Israeli forces [...], declaring curfews that
confine more than 700,000 people to their homes.'
More information about the Glasgow-haskell-bugs
mailing list