[Haskell-cafe] GHC, odd concurrency space leak
Bulat Ziganshin
bulat.ziganshin at gmail.com
Thu Apr 15 04:55:14 EDT 2010
Hello Neil,
Thursday, April 15, 2010, 12:37:35 PM, you wrote:
> I find non-termination with a much simpler program than yours (GHC 6.12.1):
> forkIO $ do putStrLn "Started thread"
> forever $ return ()
ghc multithreading is actually cooperative: it switches only on memory
allocation. since almost any haskell code allocates, there is no
problem - it works like preemptive one. but sometimes this assumption
fails - with optimization enabled, your code doesn't allocate so there
are no chances for thread switching. replacing return () with
threadDelay call solves the problem
--
Best regards,
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Haskell-Cafe
mailing list