-- | -- Module : Simulation.Aivika.Trans.Concurrent.MVar -- Copyright : Copyright (c) 2009-2017, David Sorokin -- License : BSD3 -- Maintainer : David Sorokin -- Stability : experimental -- Tested with: GHC 8.0.1 -- -- The module defines helper functions for working with 'MVar'. -- module Simulation.Aivika.Trans.Concurrent.MVar (withMVarComp) where import Control.Concurrent.MVar import Control.Monad import Control.Monad.Trans import qualified Control.Monad.Catch as MC import Simulation.Aivika.Trans.Comp withMVarComp :: (MonadComp m, MonadIO m, MC.MonadMask m) => MVar a -> (a -> m b) -> m b