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

Reply via email to