diff options
author | Simon Marlow <marlowsd@gmail.com> | 2008-07-09 13:53:37 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2008-07-09 13:53:37 +0000 |
commit | fb8c1b8048e55c161641c7d9797878f553700d1b (patch) | |
tree | abb3a84e84b10f47656accfd22ce01f34b79bf2d /rts | |
parent | 80d2e6f711d54f59c4d698c7565f69d49d34d8b8 (diff) | |
download | haskell-fb8c1b8048e55c161641c7d9797878f553700d1b.tar.gz |
add new primop: asyncExceptionsBlocked# :: IO Bool
Diffstat (limited to 'rts')
-rw-r--r-- | rts/Exception.cmm | 9 | ||||
-rw-r--r-- | rts/Linker.c | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/rts/Exception.cmm b/rts/Exception.cmm index cba5d48d72..793c9ab149 100644 --- a/rts/Exception.cmm +++ b/rts/Exception.cmm @@ -200,6 +200,15 @@ unblockAsyncExceptionszh_fast jump stg_ap_v_fast; } +asyncExceptionsBlockedzh_fast +{ + /* args: none */ + if ((TO_W_(StgTSO_flags(CurrentTSO)) & TSO_BLOCKEX) != 0) { + RET_N(1); + } else { + RET_N(0); + } +} killThreadzh_fast { diff --git a/rts/Linker.c b/rts/Linker.c index 27c580b67f..d1550e1eb5 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -547,6 +547,7 @@ typedef struct _RtsSymbolVal { SymX(barf) \ SymX(debugBelch) \ SymX(errorBelch) \ + SymX(asyncExceptionsBlockedzh_fast) \ SymX(blockAsyncExceptionszh_fast) \ SymX(catchzh_fast) \ SymX(catchRetryzh_fast) \ |