
#8235: Race condition in IO manager -------------------------------------+------------------------------------ Reporter: parcs | Owner: Type: bug | Status: new 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: 910 | Related Tickets: -------------------------------------+------------------------------------ Comment (by akio): It looks like the write to emState was triggered in {{{shutdownHaskellAndExit}}}, after the main thread (thread 4) died. So perhaps this is a normal condition, and the call to {{{error}}} should simply be removed? (I'm assuming the following thread id mapping) {{{ thread 1: helper thread in ioManagerStart() thread 2: IO manager for cap 0 thread 3: time manager thread 4: main thread thread 5: helper thread in setNumCapabilities() (1st call) thread 6: IO manager for cap 1 thread 7: helper thread in setNumCapabilities() (2nd call) thread 8: helper thread in setNumCapabilities() (3rd call) thread 9: IO manager for cap 1, which called Prelude.error }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8235#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler