mongoDB-0.9.3: MongoDB driver

Control.Monad.MVar

Description

Lift MVar operations so you can do them within monads stacked on top of IO. Analogous to MonadIO

Synopsis

Documentation

data MVar a

An MVar (pronounced "em-var") is a synchronising variable, used for communication between concurrent threads. It can be thought of as a a box, which may be empty or full.

Instances

newMVar :: MonadIO m => a -> m (MVar a)Source

takeMVar :: MonadIO m => MVar a -> m aSource

putMVar :: MonadIO m => MVar a -> a -> m ()Source

readMVar :: MonadIO m => MVar a -> m aSource

swapMVar :: MonadIO m => MVar a -> a -> m aSource

tryTakeMVar :: MonadIO m => MVar a -> m (Maybe a)Source

tryPutMVar :: MonadIO m => MVar a -> a -> m BoolSource

class MonadIO m => MonadMVar m whereSource

Methods

modifyMVar :: MVar a -> (a -> m (a, b)) -> m bSource

addMVarFinalizer :: MVar a -> m () -> m ()Source

Instances

modifyMVar_ :: MonadMVar m => MVar a -> (a -> m a) -> m ()Source

withMVar :: MonadMVar m => MVar a -> (a -> m b) -> m bSource

liftIO :: MonadIO m => forall a. IO a -> m a

Lift a computation from the IO monad.