X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FException.cmm;h=5f6bd0703df0b2e2e521e640be937b6b99531a88;hb=daa640e41e5bb964adc385509d97220b96d4ac5e;hp=ec5673804010406340afe0f078e1fb2f68f215e1;hpb=a87c4b292cc7e412aefcdb66e72c97b5a2c9f1d6;p=ghc-hetmet.git diff --git a/rts/Exception.cmm b/rts/Exception.cmm index ec56738..5f6bd07 100644 --- a/rts/Exception.cmm +++ b/rts/Exception.cmm @@ -43,10 +43,7 @@ unsafePerformIO thunk will be updated with a stack object containing the unblockAsyncExceptions_ret frame. Later, when someone else evaluates this thunk, the blocked exception state is - not restored, and the result is that unblockAsyncExceptions_ret - will attempt to unblock exceptions in the current thread, but it'll - find that the CurrentTSO->blocked_exceptions is NULL. Hence, we - work around this by checking for NULL in awakenBlockedQueue(). + not restored. -------------------------------------------------------------------------- */ @@ -55,9 +52,6 @@ INFO_TABLE_RET( stg_unblockAsyncExceptionszh_ret, { CInt r; - // Not true: see comments above - // ASSERT(StgTSO_blocked_exceptions(CurrentTSO) != NULL); - StgTSO_flags(CurrentTSO) = StgTSO_flags(CurrentTSO) & ~(TSO_BLOCKEX::I32|TSO_INTERRUPTIBLE::I32); @@ -115,9 +109,6 @@ INFO_TABLE_RET( stg_unblockAsyncExceptionszh_ret, INFO_TABLE_RET( stg_blockAsyncExceptionszh_ret, 0/*framesize*/, 0/*bitmap*/, RET_SMALL ) { - // Not true: see comments above - // ASSERT(StgTSO_blocked_exceptions(CurrentTSO) == NULL); - StgTSO_flags(CurrentTSO) = StgTSO_flags(CurrentTSO) | TSO_BLOCKEX::I32 | TSO_INTERRUPTIBLE::I32;