
#9539: TQueue can lead to thread starvation -------------------------------------+------------------------------------- Reporter: jwlato | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Core Libraries | Version: 7.8.2 Resolution: | Keywords: stm Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by dfeuer): Aha! We ''don't'' necessarily need a real-time queue, but we do need to use something more like a ''persistent'' queue. Why? If a transaction does queue maintenance work that was deferred before the transaction began (e.g., rotating the queue because it arrived in a poor state), we need that work to survive even if the transaction itself fails because the maintenance work goes on too long. The only way that can happen is through laziness: the transaction must be forcing ''pre-existing'' thunks. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9539#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler