diff options
author | Simon Marlow <marlowsd@gmail.com> | 2010-07-08 14:48:51 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2010-07-08 14:48:51 +0000 |
commit | ad3b79d22b32760f25bf10069bd2957462be959d (patch) | |
tree | 4ec55082b2fea66458d346e4c6540649d5e4c1f8 /rts/Prelude.h | |
parent | cc94b30f3d854ed97ac6a7a54fa12247295219d4 (diff) | |
download | haskell-ad3b79d22b32760f25bf10069bd2957462be959d.tar.gz |
New asynchronous exception control API (ghc parts)
As discussed on the libraries/haskell-cafe mailing lists
http://www.haskell.org/pipermail/libraries/2010-April/013420.html
This is a replacement for block/unblock in the asychronous exceptions
API to fix a problem whereby a function could unblock asynchronous
exceptions even if called within a blocked context.
The new terminology is "mask" rather than "block" (to avoid confusion
due to overloaded meanings of the latter).
In GHC, we changed the names of some primops:
blockAsyncExceptions# -> maskAsyncExceptions#
unblockAsyncExceptions# -> unmaskAsyncExceptions#
asyncExceptionsBlocked# -> getMaskingState#
and added one new primop:
maskUninterruptible#
See the accompanying patch to libraries/base for the API changes.
Diffstat (limited to 'rts/Prelude.h')
-rw-r--r-- | rts/Prelude.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/rts/Prelude.h b/rts/Prelude.h index cbe7e3ec00..ba7cb14983 100644 --- a/rts/Prelude.h +++ b/rts/Prelude.h @@ -37,6 +37,7 @@ extern StgClosure ZCMain_main_closure; PRELUDE_CLOSURE(base_GHCziIOziException_stackOverflow_closure); PRELUDE_CLOSURE(base_GHCziIOziException_heapOverflow_closure); +PRELUDE_CLOSURE(base_GHCziIOziException_blockedIndefinitelyOnThrowTo_closure); PRELUDE_CLOSURE(base_GHCziIOziException_blockedIndefinitelyOnMVar_closure); PRELUDE_CLOSURE(base_GHCziIOziException_blockedIndefinitelyOnSTM_closure); PRELUDE_CLOSURE(base_ControlziExceptionziBase_nonTermination_closure); |