Thu Jul 8 07:48:51 PDT 2010 Simon Marlow <[email protected]>
* 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.
M ./compiler/prelude/primops.txt.pp -3 +10
M ./includes/rts/storage/Closures.h -1 +1
M ./includes/stg/MiscClosures.h -4 +7
M ./rts/Exception.cmm -45 +111
M ./rts/Linker.c -3 +4
M ./rts/Prelude.h +1
M ./rts/RaiseAsync.c -3 +6
View patch online:
http://darcs.haskell.org/cgi-bin/darcsweb.cgi?r=ghc;a=darcs_commitdiff;h=20100708144851-12142-a7408ec7ada6c132e56582490d7af1ee59d88224.gz
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc