@@ -94,6 +94,7 @@ module Control.Distributed.Process.Internal.Primitives
9494 , catches
9595 , try
9696 , mask
97+ , mask_
9798 , onException
9899 , bracket
99100 , bracket_
@@ -129,7 +130,7 @@ import Control.Monad.Reader (ask)
129130import Control.Monad.IO.Class (MonadIO, liftIO)
130131import Control.Applicative ((<$>))
131132import Control.Exception (Exception(..), throw, throwIO, SomeException)
132−import qualified Control.Exception as Ex (catch, mask, try)
133+import qualified Control.Exception as Ex (catch, mask, mask_, try)
133134import Control.Distributed.Process.Internal.StrictMVar
134135 ( StrictMVar
135136 , modifyMVar
@@ -903,6 +904,12 @@ mask p = do
903904 ourLocalProc <- ask
904905 liftIO $ restoreIO $ runLocalProcess ourLocalProc p2
905906
907+-- | Lift 'Control.Exception.mask_'
908+mask_ :: Process a -> Process a
909+mask_ p = do
910+ lproc <- ask
911+ liftIO $ Ex.mask_ $ runLocalProcess lproc p
912+
906913-- | Lift 'Control.Exception.onException'
907914onException :: Process a -> Process b -> Process a
908915onException p what = p `catch` \e -> do _ <- what