Re[2]: [Haskell-cafe] Bringing Erlang to Haskell
Hello Tomasz, Tuesday, December 13, 2005, 12:49:04 PM, you wrote: TZ On Mon, Dec 12, 2005 at 04:00:46PM +, Joel Reymont wrote: One particular thing that bugs me is that I cannot really use TChan for thread mailboxes. I don't think I experienced this problem with Erlang but using a TChan with a logger thread quickly overwhelms the logger and fills the TChan and a lot (hundreds? thousands) of other threads are logging to it. TZ I wonder what Erlang does to solve this problem? Perhaps we should track TZ the number of unprocessed messages in TChans and the bigger it is TZ the more favor consumers over producers. even best - always prefer consumer to producer :) may be have two lists - one of threads waiting to consume, and one of threads waiting to produce? -- Best regards, Bulatmailto:[EMAIL PROTECTED] ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re[2]: [Haskell-cafe] Bringing Erlang to Haskell
Hello Joel, Tuesday, December 13, 2005, 1:05:10 PM, you wrote: are you read dewscription of my own Process library in haskell maillist? JR No. Can you give me a pointer? i will forward it to you. it have meaning to be subcribed there, just to see interesting announcements btw, i suggested you to try not using logging thread entirely, making all logging actions synchronously JR I cannot. Only one thread can use stdout, otherwise the output is JR garbled. Plus, combing through a few thousand individual files JR produced by the threads would be a pain. :))) import Control.Concurrent import Control.Monad import System.IO import System.IO.Unsafe main = do h - openBinaryFile test WriteMode for [1..100] $ \n - forkIO $ for [1..] $ \i - logger h (thread ++show n++ msg ++show i) getLine hClose h lock = unsafePerformIO$ newMVar () logger h msg = withMVar lock $ const$ do hPutStrLn h msg putStrLn msg for = flip mapM_ -- Best regards, Bulatmailto:[EMAIL PROTECTED] ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: Re[2]: [Haskell-cafe] Bringing Erlang to Haskell
Thank you Bulat, makes total sense. This list is a treasure trove of a resource. I guess this is what happens when you go from Erlang to Haskell :-). I'm conditioned to think of everything as a process and uses processes for everything. On Dec 13, 2005, at 11:17 AM, Bulat Ziganshin wrote: import Control.Concurrent import Control.Monad import System.IO import System.IO.Unsafe main = do h - openBinaryFile test WriteMode for [1..100] $ \n - forkIO $ for [1..] $ \i - logger h (thread ++show n++ msg ++show i) getLine hClose h lock = unsafePerformIO$ newMVar () logger h msg = withMVar lock $ const$ do hPutStrLn h msg putStrLn msg for = flip mapM_ -- http://wagerlabs.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe