Re: [GHC] #4001: Implement an atomic readMVar

#4001: Implement an atomic readMVar -------------------------------------------+-------------------------------- Reporter: simonmar | Owner: ezyang Type: task | Status: new Priority: low | Milestone: 7.6.2 Component: Runtime System | Version: 6.12.2 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Moderate (less than a day) | Testcase: Blockedby: | Blocking: Related: | -------------------------------------------+-------------------------------- Comment(by ezyang): I thought of a way to remove the extra queue: push reader threads onto the front of the ordinary queue, then modify putMVar to loop through the queue until it finds a taker. (The invariant is that reader threads are always in the front.) Unfortunately, this seems incompatible with arranging for the closure to be unlocked before the loop, since we won't know what the new head pointer for the MVar should be until we've finished traversing the queue. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4001#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC