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