Thu Jul 8 08:27:35 PDT 2010 Simon Marlow <[email protected]>
* New asynchronous exception control API (base 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).
The following is the new API; the old API is deprecated but still
available for the time being.
Control.Exception
-----------------
mask :: ((forall a. IO a -> IO a) -> IO b) -> IO b
mask_ :: IO a -> IO a
uninterruptibleMask :: ((forall a. IO a -> IO a) -> IO b) -> IO b
uninterruptibleMask_ :: IO a -> IO
getMaskingState :: IO MaskingState
data MaskingState
= Unmasked
| MaskedInterruptible
| MaskedUninterruptible
Control.Concurrent
------------------
forkIOUnmasked :: IO () -> IO ThreadId
M ./Control/Concurrent.hs -10 +13
M ./Control/Concurrent/MVar.hs -8 +8
M ./Control/Concurrent/QSem.hs -3 +3
M ./Control/Concurrent/QSemN.hs -3 +3
M ./Control/Concurrent/SampleVar.hs -5 +5
M ./Control/Exception.hs -10 +17
M ./Control/Exception/Base.hs -9 +15
M ./Control/OldException.hs -19 +14
M ./Data/HashTable.hs -1 +1
M ./Data/Typeable.hs -2 +2
M ./Foreign/Marshal/Pool.hs -3 +3
M ./GHC/Conc.lhs -8 +20
M ./GHC/IO.hs -12 +124
M ./GHC/IO/Handle/Internals.hs -2 +2
View patch online:
http://darcs.haskell.org/cgi-bin/darcsweb.cgi?r=packages/base;a=darcs_commitdiff;h=20100708152735-12142-b270b0f0e72bd0f0115d0eb0352f77162831b0a4.gz
_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries