#define THROWTO_BLOCKED 1
#ifndef CMINUSMINUS
+
+BEGIN_RTS_PRIVATE
+
void throwToSingleThreaded (Capability *cap,
StgTSO *tso,
StgClosure *exception);
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
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) {
}
}
+END_RTS_PRIVATE
+
#endif /* CMINUSMINUS */
#endif /* RAISEASYNC_H */