Hello Joel,

Tuesday, December 06, 2005, 6:42:32 PM, you wrote:
JR> On Dec 6, 2005, at 1:47 PM, Bulat Ziganshin wrote:

>> either
>> 1) use MVars/TMVars instead of Channels. in any case your logging
>> thread must consume data not slower than other channels produce then.
>> in fact, using Chan have meaning only to smooth temporary speed
>> differences between different threads. are you really need this??

btw, why not pass to worker thread just the logging action itself?

and, about waitForChildren:

waitForChildren :: IO ()
waitForChildren = 
    do logDead <- newEmptyMVar
       forkIO (logger `finally` putMVar logDead ())
       c <- takeMVar children
       mapM_  takeMVar c
       ...send Nothing to logger thread
       takeMVar logDead

as simple as possible

-- 
Best regards,
 Bulat                            mailto:[EMAIL PROTECTED]



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to