[Haskell-cafe] Spurious program crashes

Joel Reymont joelr1 at gmail.com
Tue Nov 22 04:03:55 EST 2005


I think it's much simpler than that. I just changed the trace  
function to send Just String down the channel. Whenever I send  
Nothing (from waitForChildren) the logger just exits. Simple change  
in two places, no need for MVars.

Did I miss anything? The program became much snappier, btw.


On Nov 22, 2005, at 8:53 AM, Tomasz Zielonka wrote:

>> Regardless, simple is elegant and your Maybe solution is simple.
> But it also requires that you restructure your code, doesn't it?
> I am not sure we understood each other here.
> One way to restructure your code to enable smooth transition to the
> (Chan (Maybe String)) idea would be to change the type of "die  
> request"
> from (MVar ()) to (IO ()). You could use
>     (dieVar, die) <- do
>         dieVar <- newEmptyMVar
>         return (dieVar, putMVar dieVar ())
> where "dieVar" is used on the receiver side, and die is used on the
> sender side. Then you could easily use a different notification
> mechanism for logger:
>     let die = writeChan parent Nothing


More information about the Haskell-Cafe mailing list