X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FException.hc;h=f7b58878cec1498728d815801c152664db56a361;hb=dca0d0f7c04520caa00e2a4ec1602bbfd9de32f9;hp=fecdd608e02540f8ea9c4c13b6964d5166d95f71;hpb=1060b59bec219335e4f54e991044027c12b70678;p=ghc-hetmet.git diff --git a/ghc/rts/Exception.hc b/ghc/rts/Exception.hc index fecdd60..f7b5887 100644 --- a/ghc/rts/Exception.hc +++ b/ghc/rts/Exception.hc @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: Exception.hc,v 1.16 2000/11/14 12:52:55 simonmar Exp $ + * $Id: Exception.hc,v 1.21 2001/08/17 14:44:54 simonmar Exp $ * * (c) The GHC Team, 1998-2000 * @@ -7,6 +7,7 @@ * * ---------------------------------------------------------------------------*/ +#include "Stg.h" #include "Rts.h" #include "Exception.h" #include "Schedule.h" @@ -75,12 +76,12 @@ FN_(stg_unblockAsyncExceptionszh_ret_entry) ASSERT(CurrentTSO->blocked_exceptions != NULL); #if defined(GRAN) awakenBlockedQueue(CurrentTSO->blocked_exceptions, - CurrentTSO->block_info.closure); + (StgClosure*)NULL); #elif defined(PAR) - // is CurrentTSO->block_info.closure always set to the node - // holding the blocking queue !? -- HWL + /* we don't need node info (2nd arg) in this case + (note that CurrentTSO->block_info.closure isn't always set) */ awakenBlockedQueue(CurrentTSO->blocked_exceptions, - CurrentTSO->block_info.closure); + (StgClosure*)NULL); #else awakenBlockedQueue(CurrentTSO->blocked_exceptions); #endif @@ -282,7 +283,7 @@ VEC_POLY_INFO_TABLE(stg_catch_frame, CATCH_FRAME_BITMAP, NULL/*srt*/, 0/*srt_off * It is used in deleteThread when reverting blackholes. * -------------------------------------------------------------------------- */ -INFO_TABLE(stg_catch_info,catch_entry,2,0,FUN,,EF_,0,0); +INFO_TABLE(stg_catch_info,stg_catch_entry,2,0,FUN,,EF_,0,0); STGFUN(stg_catch_entry) { FB_ @@ -348,7 +349,6 @@ FN_(raisezh_fast) #if defined(PROFILING) - /* Debugging tool: on raising an exception, show where we are. */ /* ToDo: currently this is a hack. Would be much better if @@ -357,7 +357,6 @@ FN_(raisezh_fast) if (RtsFlags.ProfFlags.showCCSOnException) { STGCALL2(print_ccs,stderr,CCCS); } - #endif p = Su; @@ -368,7 +367,7 @@ FN_(raisezh_fast) */ raise_closure = (StgClosure *)RET_STGCALL1(P_,allocate, sizeofW(StgClosure)+1); - raise_closure->header.info = &stg_raise_info; + SET_HDR(raise_closure, &stg_raise_info, CCCS); raise_closure->payload[0] = R1.cl; while (1) {