X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FException.cmm;h=0c1b6648d5c89c5bf1313f4ee3343b55bdd4bfe1;hp=5c2ee95846de1d781273e8ac438d0ce59463995e;hb=9da4639011348fb6c318e3cba4b08622f811d9c4;hpb=71899d3e335e763e61f1308bd38b10a18b110791 diff --git a/rts/Exception.cmm b/rts/Exception.cmm index 5c2ee95..0c1b664 100644 --- a/rts/Exception.cmm +++ b/rts/Exception.cmm @@ -123,6 +123,9 @@ unblockAsyncExceptionszh_fast foreign "C" awakenBlockedExceptionQueue(MyCapability() "ptr", CurrentTSO "ptr") [R1]; + StgTSO_flags(CurrentTSO) = StgTSO_flags(CurrentTSO) & + ~(TSO_BLOCKEX::I32|TSO_INTERRUPTIBLE::I32); + /* avoid growing the stack unnecessarily */ if (Sp(0) == stg_unblockAsyncExceptionszh_ret_info) { Sp_adj(1); @@ -329,7 +332,7 @@ raisezh_fast /* ToDo: currently this is a hack. Would be much better if * the info was only displayed for an *uncaught* exception. */ - if (RtsFlags_ProfFlags_showCCSOnException(RtsFlags)) { + if (RtsFlags_ProfFlags_showCCSOnException(RtsFlags) != 0::I32) { foreign "C" fprintCCS_stderr(W_[CCCS] "ptr"); } #endif @@ -348,7 +351,7 @@ retry_pop_stack: r = foreign "C" stmValidateNestOfTransactions(trec "ptr"); foreign "C" stmAbortTransaction(MyCapability() "ptr", trec "ptr"); StgTSO_trec(CurrentTSO) = NO_TREC; - if (r) { + if (r != 0) { // Transaction was valid: continue searching for a catch frame Sp = Sp + SIZEOF_StgAtomicallyFrame; goto retry_pop_stack;