Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Transactional CVar
s, for use with MonadSTM
.
- data CTMVar m a
- newCTMVar :: MonadSTM m => a -> m (CTMVar m a)
- newEmptyCTMVar :: MonadSTM m => m (CTMVar m a)
- takeCTMVar :: MonadSTM m => CTMVar m a -> m a
- putCTMVar :: MonadSTM m => CTMVar m a -> a -> m ()
- readCTMVar :: MonadSTM m => CTMVar m a -> m a
- tryTakeCTMVar :: MonadSTM m => CTMVar m a -> m (Maybe a)
- tryPutCTMVar :: MonadSTM m => CTMVar m a -> a -> m Bool
- tryReadCTMVar :: MonadSTM m => CTMVar m a -> m (Maybe a)
- isEmptyCTMVar :: MonadSTM m => CTMVar m a -> m Bool
- swapCTMVar :: MonadSTM m => CTMVar m a -> a -> m a
CTMVar
s
A CTMVar
is like an MVar
or a CVar
, but using transactional
memory. As transactions are atomic, this makes dealing with
multiple CTMVar
s easier than wrangling multiple CVar
s.
newEmptyCTMVar :: MonadSTM m => m (CTMVar m a) Source
Create a new empty CTMVar
.
takeCTMVar :: MonadSTM m => CTMVar m a -> m a Source
readCTMVar :: MonadSTM m => CTMVar m a -> m a Source
tryTakeCTMVar :: MonadSTM m => CTMVar m a -> m (Maybe a) Source
tryPutCTMVar :: MonadSTM m => CTMVar m a -> a -> m Bool Source
tryReadCTMVar :: MonadSTM m => CTMVar m a -> m (Maybe a) Source