#2651: BlockedIndefinitely not thrown when it should be
------------------------------+---------------------------------------------
Reporter: govereau | Owner:
Type: bug | Status: closed
Priority: normal | Milestone: 6.10 branch
Component: Runtime System | Version: 6.8.3
Severity: normal | Resolution: wontfix
Keywords: | Difficulty: Unknown
Testcase: | Architecture: Unknown/Multiple
Os: Unknown/Multiple |
------------------------------+---------------------------------------------
Changes (by simonmar):
* status: new => closed
* resolution: => wontfix
Comment:
As Ian says, it works with the threaded RTS. This is because detecting
deadlocked threads requires the GC to run, and only the threaded RTS runs
the GC during idle time (i.e. when the main thread is in `threadDelay` in
this example).
The non-threaded RTS just sits in `select()` waiting for the time to
expire. I suppose it could notice that it had a long time to wait and do
a GC, but I don't feel terribly inclined to fix this since there's an easy
workaround. We don't guarantee anything about deadlock detection anyway,
because GC can always be delayed for an arbitrary amount of time, so it's
really just a debugging feature.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2651#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs