[GHC] #10241: BlockedIndefinitelyOnMVar thrown to the thread which is not blocked indefinitely

GHC ghc-devs at haskell.org
Tue May 1 19:21:35 UTC 2018


#10241: BlockedIndefinitelyOnMVar thrown to the thread which is not blocked
indefinitely
-------------------------------------+-------------------------------------
        Reporter:  asukamirai        |                Owner:  simonmar
            Type:  bug               |               Status:  patch
        Priority:  normal            |            Milestone:
       Component:  Runtime System    |              Version:  7.8.3
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:  x86_64
 Type of failure:  Incorrect result  |  (amd64)
  at runtime                         |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #10793            |  Differential Rev(s):  Phab:D4644
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonmar):

 This comes up from time to time. We can't pick an order to resurrect
 threads in because we don't know which one to resurrect first (as I
 commented on Phab:D4644).  e.g. if we happened to resurrect the main
 thread first in this example, the result would be exactly the same.

 We could do multiple traversals of the heap to figure out the
 relationship, but that's not practical. The only deterministic thing to do
 is to treat all unreachable threads as deadlocked and send them all an
 exception at the same time.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10241#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list