
#8087: Bug in IO manager when increasing the number of capabilities -------------------------------------+------------------------------------ Reporter: parcs | Owner: Type: bug | Status: patch Priority: normal | Milestone: Component: libraries/base | Version: 7.7 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: Runtime crash | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------ Changes (by parcs): * status: new => patch Comment: Here's the fix: {{{ #!diff diff --git a/GHC/Event/Thread.hs b/GHC/Event/Thread.hs index ca8ed1e..c4f83a0 100644 --- a/GHC/Event/Thread.hs +++ b/GHC/Event/Thread.hs @@ -339,7 +339,7 @@ ioManagerCapabilitiesChanged = do -- create new IO managers for the new caps: forM_ [old_n_caps..new_n_caps-1] $ - startIOManagerThread eventManagerArray + startIOManagerThread new_eventManagerArray -- update the event manager array reference: writeIORef eventManager new_eventManagerArray }}} `startIOManagerThread` should be writing the metadata about the new IO threads to the new event manager array, not the old array. I was going to update the testsuite but I am not sure how to formulate a test case that doesn't rely on stdin. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8087#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler