Blocking a task indefinitely in the RTS
Phil Ruffwind
rf at rufflewind.com
Mon Jan 7 23:23:59 UTC 2019
Strange, how could the scheduler assume a deadlock if the MVar could be called from a closure that is still alive? Can you show the code that you're testing?
On Mon, Jan 7, 2019, at 14:09, Phyx wrote:
> Hi Phil,
>
> Thanks for the reply, however that just gives me a forced deadlock removal
> as before.
>
> new bound thread (1)
> cap 0: schedule()
> cap 0: running thread 1 (ThreadRunGHC)
> cap 0: thread 1 stopped (blocked on an MVar)
> thread 1 @ 0000000003205388 is blocked on an MVar @
> 00000000032040c8 (TSO_DIRTY)
> deadlocked, forcing major GC...
> all threads:
> threads on capability 0:
> other threads:
> thread 1 @ 0000000003205388 is blocked on an MVar @
> 00000000032040c8 (TSO_DIRTY)
> cap 0: starting GC
>
> I don't believe any solution involving MVars will work for the non-threaded
> RTS. Though I'd love to be wrong here...
>
> Regards,
> Tamar
More information about the ghc-devs
mailing list