Skip to content
  • Simon Marlow's avatar
    New asynchronous exception control API (ghc parts) · ad3b79d2
    Simon Marlow authored
    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.
    ad3b79d2