
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