X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRaiseAsync.h;h=96eb96e10b5529cdd19dce8a55ea874da34448b5;hb=6cf8982ac30be6836a0cdd8be5a6ac1a1a144213;hp=8e59d51d9f8115bdf94b28ff7ccc6e9a086d2c4f;hpb=b1953bbb1ed3cb16497e5447db7487f0c2d9e41a;p=ghc-hetmet.git diff --git a/rts/RaiseAsync.h b/rts/RaiseAsync.h index 8e59d51..96eb96e 100644 --- a/rts/RaiseAsync.h +++ b/rts/RaiseAsync.h @@ -13,6 +13,9 @@ #define THROWTO_BLOCKED 1 #ifndef CMINUSMINUS + +BEGIN_RTS_PRIVATE + void throwToSingleThreaded (Capability *cap, StgTSO *tso, StgClosure *exception); @@ -20,12 +23,11 @@ void throwToSingleThreaded (Capability *cap, void throwToSingleThreaded_ (Capability *cap, StgTSO *tso, StgClosure *exception, - rtsBool stop_at_atomically, - StgPtr stop_here); + rtsBool stop_at_atomically); void suspendComputation (Capability *cap, StgTSO *tso, - StgPtr stop_here); + StgUpdateFrame *stop_here); nat throwTo (Capability *cap, // the Capability we hold StgTSO *source, // the TSO sending the exception @@ -38,14 +40,14 @@ nat throwTo (Capability *cap, // the Capability we hold void throwToReleaseTarget (void *tso); #endif -void maybePerformBlockedException (Capability *cap, StgTSO *tso); +int maybePerformBlockedException (Capability *cap, StgTSO *tso); void awakenBlockedExceptionQueue (Capability *cap, StgTSO *tso); /* Determine whether a thread is interruptible (ie. blocked * indefinitely). Interruptible threads can be sent an exception with * killThread# even if they have async exceptions blocked. */ -STATIC_INLINE int +INLINE_HEADER int interruptible(StgTSO *t) { switch (t->why_blocked) { @@ -65,6 +67,8 @@ interruptible(StgTSO *t) } } +END_RTS_PRIVATE + #endif /* CMINUSMINUS */ #endif /* RAISEASYNC_H */