summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2008-07-09 13:53:37 +0000
committerSimon Marlow <marlowsd@gmail.com>2008-07-09 13:53:37 +0000
commitfb8c1b8048e55c161641c7d9797878f553700d1b (patch)
treeabb3a84e84b10f47656accfd22ce01f34b79bf2d /rts
parent80d2e6f711d54f59c4d698c7565f69d49d34d8b8 (diff)
downloadhaskell-fb8c1b8048e55c161641c7d9797878f553700d1b.tar.gz
add new primop: asyncExceptionsBlocked# :: IO Bool
Diffstat (limited to 'rts')
-rw-r--r--rts/Exception.cmm9
-rw-r--r--rts/Linker.c1
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) \