[Haskell-cafe] Bringing Erlang to Haskell

Bulat Ziganshin bulatz at HotPOP.com
Tue Dec 13 06:17:07 EST 2005

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)
          hClose h

lock = unsafePerformIO$ newMVar ()

logger h msg = withMVar lock $ const$ do
                 hPutStrLn h msg
                 putStrLn msg

for = flip mapM_

Best regards,
 Bulat                            mailto:bulatz at HotPOP.com

More information about the Haskell-Cafe mailing list