
$ ghci GHCi, version 6.12.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Loading package ffi-1.0 ... linking ... done. Prelude> :m +Data.IORef Control.Concurrent Control.Monad Prelude Data.IORef Control.Concurrent Control.Monad> msg <- newIORef "Hello" Prelude Data.IORef Control.Concurrent Control.Monad> let echo = forever $ readIORef msg >>= putStrLn >> threadDelay 3000000 Prelude Data.IORef Control.Concurrent Control.Monad> t <- forkIO echo Hello Prelude Data.IORef Control.Concurrent Control.Monad> Hello Hello writeIORefHello msg "World" Prelude Data.IORef Control.Concurrent Control.Monad> World World
On my mac, this works..but on Linux, the moment I do t <- forkIO ... , it starts off a thread in the foreground and does not return to the prompt. Regards, Kashyap