git.iko.soy/distributed-process
on master help sign in
Merge pull request #155 from tweag/expose-mask_
8d790cdTim Watson
src/Control/Distributed/Process.hs+2
@@ -134,6 +134,7 @@ module Control.Distributed.Process
134 , catches
134 , catches
135 , try
135 , try
136 , mask
136 , mask
137+ , mask_
137 , onException
138 , onException
138 , bracket
139 , bracket
139 , bracket_
140 , bracket_
@@ -278,6 +279,7 @@ import Control.Distributed.Process.Internal.Primitives
278 , catches
279 , catches
279 , try
280 , try
280 , mask
281 , mask
282+ , mask_
281 , onException
283 , onException
282 , bracket
284 , bracket
283 , bracket_
285 , bracket_
src/Control/Distributed/Process/Internal/Primitives.hs+8−1
@@ -94,6 +94,7 @@ module Control.Distributed.Process.Internal.Primitives
94 , catches
94 , catches
95 , try
95 , try
96 , mask
96 , mask
97+ , mask_
97 , onException
98 , onException
98 , bracket
99 , bracket
99 , bracket_
100 , bracket_
@@ -129,7 +130,7 @@ import Control.Monad.Reader (ask)
129import Control.Monad.IO.Class (MonadIO, liftIO)
130import Control.Monad.IO.Class (MonadIO, liftIO)
130import Control.Applicative ((<$>))
131import Control.Applicative ((<$>))
131import Control.Exception (Exception(..), throw, throwIO, SomeException)
132import 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)
133import Control.Distributed.Process.Internal.StrictMVar
134import Control.Distributed.Process.Internal.StrictMVar
134 ( StrictMVar
135 ( StrictMVar
135 , modifyMVar
136 , modifyMVar
@@ -903,6 +904,12 @@ mask p = do
903 ourLocalProc <- ask
904 ourLocalProc <- ask
904 liftIO $ restoreIO $ runLocalProcess ourLocalProc p2
905 liftIO $ restoreIO $ runLocalProcess ourLocalProc p2
905
906
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+
906-- | Lift 'Control.Exception.onException'
913-- | Lift 'Control.Exception.onException'
907onException :: Process a -> Process b -> Process a
914onException :: Process a -> Process b -> Process a
908onException p what = p `catch` \e -> do _ <- what
915onException p what = p `catch` \e -> do _ <- what