1 /* -----------------------------------------------------------------------------
3 * (c) The GHC Team, 1998-2000
7 * ---------------------------------------------------------------------------*/
9 extern const StgRetInfoTable stg_blockAsyncExceptionszh_ret_info;
10 extern const StgRetInfoTable stg_unblockAsyncExceptionszh_ret_info;
12 /* Determine whether a thread is interruptible (ie. blocked
13 * indefinitely). Interruptible threads can be sent an exception with
14 * killThread# even if they have async exceptions blocked.
17 interruptible(StgTSO *t)
19 switch (t->why_blocked) {
21 case BlockedOnException:
24 #if defined(mingw32_TARGET_OS)
29 // NB. Threaded blocked on foreign calls (BlockedOnCCall) are
30 // *not* interruptible. We can't send these threads an exception.