X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRaiseAsync.c;h=0f84ae536058049683b9c3cbc5702bb77dc7d3a5;hb=80b1239ee0f6938195d25081601fb2852dcda1e9;hp=95e2492efcd9c3e015d7a5b1643f4688c16d14cd;hpb=1ca9b6f8f22b58898b42bcb5b1017a85f4ab06a7;p=ghc-hetmet.git diff --git a/rts/RaiseAsync.c b/rts/RaiseAsync.c index 95e2492..0f84ae5 100644 --- a/rts/RaiseAsync.c +++ b/rts/RaiseAsync.c @@ -438,6 +438,9 @@ check_target: case BlockedOnRead: case BlockedOnWrite: case BlockedOnDelay: +#if defined(mingw32_HOST_OS) + case BlockedOnDoProc: +#endif if ((target->flags & TSO_BLOCKEX) && ((target->flags & TSO_INTERRUPTIBLE) == 0)) { blockedThrowTo(source,target); @@ -1017,6 +1020,7 @@ raiseAsync(Capability *cap, StgTSO *tso, StgClosure *exception, StgTRecHeader *trec = tso -> trec; StgTRecHeader *outer = stmGetEnclosingTRec(trec); stmAbortTransaction(cap, trec); + stmFreeAbortedTRec(cap, trec); tso -> trec = outer; break;