On Tue, Sep 14, 2010 at 9:44 PM, Mitar <[email protected]> wrote:
> Hi!
>
> On Tue, Sep 14, 2010 at 9:04 PM, Gregory Collins
> <[email protected]> wrote:
>> That's surprising to me -- this is how we kill the Snap webserver
>> (killThread the controlling thread...).
>
> Yes. This does work. The only problem is that my main thread then
> kills child threads, which then start killing main thread again, which
> then again kills child threads and interrupt cleanup.
>

This sounds wrong. Why is the main thread sending more than one kill?
Handlers for some exception shouldn't run more than once unless you
set them up that way.

Are you perhaps being tripped up by the issue whereby when the main
thread dies, the RTS just shuts down even if other threads are
running? You might find you need some kind of maybe MVar-driven
mechanism to keep the main thread alive until all else is definitely
dead.

Maybe this behaviour should be considered a bug, I don't know. It
would be nice if after a forkIO threads were effectively equal.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to