[GHC] #8818: Add withMVarMasked
GHC
ghc-devs at haskell.org
Mon Feb 24 08:41:03 UTC 2014
#8818: Add withMVarMasked
------------------------------------+-------------------------------------
Reporter: hvr | Owner: hvr
Type: feature request | Status: new
Priority: normal | Milestone: 7.10.1
Component: libraries/base | Version:
Keywords: | Operating System: Unknown/Multiple
Architecture: Unknown/Multiple | Type of failure: None/Unknown
Difficulty: Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: |
------------------------------------+-------------------------------------
We already have `modifyMVarMasked` and `modifyMVarMasked_`, and so
I propose to add
{{{#!haskell
{-|
Like 'withMVar', but the @IO@ action in the second argument is executed
with asynchronous exceptions masked.
/Since: 4.7.0.0/
-}
{-# INLINE withMVarMasked_ #-}
withMVarMasked :: MVar a -> (a -> IO b) -> IO b
withMVarMasked m io =
mask_ $ do
a <- takeMVar m
b <- io a `onException` putMVar m a
putMVar m a
return b
}}}
any arguments against this addition?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8818>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list