Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Control.Monad.Class.MonadSTM
Synopsis
- class (Monad m, MonadSTMTx (STM m)) => MonadSTM m where
- type STM m :: Type -> Type
- atomically :: HasCallStack => STM m a -> m a
- newTVarIO :: a -> m (TVar m a)
- newTMVarIO :: a -> m (TMVar m a)
- newEmptyTMVarIO :: m (TMVar m a)
- newTBQueueIO :: Natural -> m (TBQueue m a)
- class (Monad stm, Alternative stm, MonadPlus stm) => MonadSTMTx stm where
- type TVar_ stm :: Type -> Type
- type TMVar_ stm :: Type -> Type
- type TQueue_ stm :: Type -> Type
- type TBQueue_ stm :: Type -> Type
- newTVar :: a -> stm (TVar_ stm a)
- readTVar :: TVar_ stm a -> stm a
- writeTVar :: TVar_ stm a -> a -> stm ()
- retry :: stm a
- orElse :: stm a -> stm a -> stm a
- modifyTVar :: TVar_ stm a -> (a -> a) -> stm ()
- modifyTVar' :: TVar_ stm a -> (a -> a) -> stm ()
- stateTVar :: TVar_ stm s -> (s -> (a, s)) -> stm a
- check :: Bool -> stm ()
- newTMVar :: a -> stm (TMVar_ stm a)
- newEmptyTMVar :: stm (TMVar_ stm a)
- takeTMVar :: TMVar_ stm a -> stm a
- tryTakeTMVar :: TMVar_ stm a -> stm (Maybe a)
- putTMVar :: TMVar_ stm a -> a -> stm ()
- tryPutTMVar :: TMVar_ stm a -> a -> stm Bool
- readTMVar :: TMVar_ stm a -> stm a
- tryReadTMVar :: TMVar_ stm a -> stm (Maybe a)
- swapTMVar :: TMVar_ stm a -> a -> stm a
- isEmptyTMVar :: TMVar_ stm a -> stm Bool
- newTQueue :: stm (TQueue_ stm a)
- readTQueue :: TQueue_ stm a -> stm a
- tryReadTQueue :: TQueue_ stm a -> stm (Maybe a)
- writeTQueue :: TQueue_ stm a -> a -> stm ()
- isEmptyTQueue :: TQueue_ stm a -> stm Bool
- newTBQueue :: Natural -> stm (TBQueue_ stm a)
- readTBQueue :: TBQueue_ stm a -> stm a
- tryReadTBQueue :: TBQueue_ stm a -> stm (Maybe a)
- flushTBQueue :: TBQueue_ stm a -> stm [a]
- writeTBQueue :: TBQueue_ stm a -> a -> stm ()
- lengthTBQueue :: TBQueue_ stm a -> stm Natural
- isEmptyTBQueue :: TBQueue_ stm a -> stm Bool
- isFullTBQueue :: TBQueue_ stm a -> stm Bool
- type LazyTVar m = TVar m
- type LazyTMVar m = TMVar m
- type TVar m = TVar_ (STM m)
- type TMVar m = TMVar_ (STM m)
- type TQueue m = TQueue_ (STM m)
- type TBQueue m = TBQueue_ (STM m)
- newtype TMVarDefault m a = TMVar (TVar m (Maybe a))
- newTMVarDefault :: MonadSTM m => a -> STM m (TMVarDefault m a)
- newTMVarIODefault :: MonadSTM m => a -> m (TMVarDefault m a)
- newEmptyTMVarDefault :: MonadSTM m => STM m (TMVarDefault m a)
- newEmptyTMVarIODefault :: MonadSTM m => m (TMVarDefault m a)
- takeTMVarDefault :: MonadSTM m => TMVarDefault m a -> STM m a
- tryTakeTMVarDefault :: MonadSTM m => TMVarDefault m a -> STM m (Maybe a)
- putTMVarDefault :: MonadSTM m => TMVarDefault m a -> a -> STM m ()
- tryPutTMVarDefault :: MonadSTM m => TMVarDefault m a -> a -> STM m Bool
- readTMVarDefault :: MonadSTM m => TMVarDefault m a -> STM m a
- tryReadTMVarDefault :: MonadSTM m => TMVarDefault m a -> STM m (Maybe a)
- swapTMVarDefault :: MonadSTM m => TMVarDefault m a -> a -> STM m a
- isEmptyTMVarDefault :: MonadSTM m => TMVarDefault m a -> STM m Bool
- data TQueueDefault m a = TQueue !(TVar m [a]) !(TVar m [a])
- newTQueueDefault :: MonadSTM m => STM m (TQueueDefault m a)
- readTQueueDefault :: MonadSTM m => TQueueDefault m a -> STM m a
- tryReadTQueueDefault :: MonadSTMTx (STM m) => TQueueDefault m a -> STM m (Maybe a)
- writeTQueueDefault :: MonadSTM m => TQueueDefault m a -> a -> STM m ()
- isEmptyTQueueDefault :: MonadSTMTx (STM m) => TQueueDefault m a -> STM m Bool
- data TBQueueDefault m a = TBQueue !(TVar m Natural) !(TVar m [a]) !(TVar m Natural) !(TVar m [a]) !Natural
- newTBQueueDefault :: MonadSTM m => Natural -> STM m (TBQueueDefault m a)
- readTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> STM m a
- tryReadTBQueueDefault :: MonadSTMTx (STM m) => TBQueueDefault m a -> STM m (Maybe a)
- writeTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> a -> STM m ()
- isEmptyTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> STM m Bool
- isFullTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> STM m Bool
- lengthTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> STM m Natural
- flushTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> STM m [a]
- throwSTM :: (MonadSTMTx stm, MonadThrow stm, Exception e) => e -> stm a
- catchSTM :: (MonadSTMTx stm, MonadCatch stm, Exception e) => stm a -> (e -> stm a) -> stm a
- newTVarM :: MonadSTM m => a -> m (TVar m a)
- newTMVarM :: MonadSTM m => a -> m (TMVar m a)
- newTMVarMDefault :: MonadSTM m => a -> m (TMVarDefault m a)
- newEmptyTMVarM :: MonadSTM m => m (TMVar m a)
- newEmptyTMVarMDefault :: MonadSTM m => m (TMVarDefault m a)
Documentation
class (Monad m, MonadSTMTx (STM m)) => MonadSTM m where Source #
Minimal complete definition
Methods
atomically :: HasCallStack => STM m a -> m a Source #
newTVarIO :: a -> m (TVar m a) Source #
newTMVarIO :: a -> m (TMVar m a) Source #
newEmptyTMVarIO :: m (TMVar m a) Source #
newTBQueueIO :: Natural -> m (TBQueue m a) Source #
Instances
MonadSTM IO Source # | |
Defined in Control.Monad.Class.MonadSTM | |
MonadSTM m => MonadSTM (ReaderT r m) Source # | |
Defined in Control.Monad.Class.MonadSTM Methods atomically :: HasCallStack => STM (ReaderT r m) a -> ReaderT r m a Source # newTVarIO :: a -> ReaderT r m (TVar (ReaderT r m) a) Source # newTMVarIO :: a -> ReaderT r m (TMVar (ReaderT r m) a) Source # newEmptyTMVarIO :: ReaderT r m (TMVar (ReaderT r m) a) Source # newTBQueueIO :: Natural -> ReaderT r m (TBQueue (ReaderT r m) a) Source # |
class (Monad stm, Alternative stm, MonadPlus stm) => MonadSTMTx stm where Source #
Minimal complete definition
newTVar, readTVar, writeTVar, retry, orElse, newTMVar, newEmptyTMVar, takeTMVar, tryTakeTMVar, putTMVar, tryPutTMVar, readTMVar, tryReadTMVar, swapTMVar, isEmptyTMVar, newTQueue, readTQueue, tryReadTQueue, writeTQueue, isEmptyTQueue, newTBQueue, readTBQueue, tryReadTBQueue, flushTBQueue, writeTBQueue, lengthTBQueue, isEmptyTBQueue, isFullTBQueue
Associated Types
type TVar_ stm :: Type -> Type Source #
type TMVar_ stm :: Type -> Type Source #
Methods
newTVar :: a -> stm (TVar_ stm a) Source #
readTVar :: TVar_ stm a -> stm a Source #
writeTVar :: TVar_ stm a -> a -> stm () Source #
orElse :: stm a -> stm a -> stm a Source #
modifyTVar :: TVar_ stm a -> (a -> a) -> stm () Source #
modifyTVar' :: TVar_ stm a -> (a -> a) -> stm () Source #
stateTVar :: TVar_ stm s -> (s -> (a, s)) -> stm a Source #
@since io-sim-classes-0.2.0.0
check :: Bool -> stm () Source #
newTMVar :: a -> stm (TMVar_ stm a) Source #
newEmptyTMVar :: stm (TMVar_ stm a) Source #
takeTMVar :: TMVar_ stm a -> stm a Source #
tryTakeTMVar :: TMVar_ stm a -> stm (Maybe a) Source #
putTMVar :: TMVar_ stm a -> a -> stm () Source #
tryPutTMVar :: TMVar_ stm a -> a -> stm Bool Source #
readTMVar :: TMVar_ stm a -> stm a Source #
tryReadTMVar :: TMVar_ stm a -> stm (Maybe a) Source #
swapTMVar :: TMVar_ stm a -> a -> stm a Source #
isEmptyTMVar :: TMVar_ stm a -> stm Bool Source #
newTQueue :: stm (TQueue_ stm a) Source #
readTQueue :: TQueue_ stm a -> stm a Source #
tryReadTQueue :: TQueue_ stm a -> stm (Maybe a) Source #
writeTQueue :: TQueue_ stm a -> a -> stm () Source #
isEmptyTQueue :: TQueue_ stm a -> stm Bool Source #
newTBQueue :: Natural -> stm (TBQueue_ stm a) Source #
readTBQueue :: TBQueue_ stm a -> stm a Source #
tryReadTBQueue :: TBQueue_ stm a -> stm (Maybe a) Source #
flushTBQueue :: TBQueue_ stm a -> stm [a] Source #
writeTBQueue :: TBQueue_ stm a -> a -> stm () Source #
lengthTBQueue :: TBQueue_ stm a -> stm Natural Source #
Since: 0.2.0.0
isEmptyTBQueue :: TBQueue_ stm a -> stm Bool Source #
isFullTBQueue :: TBQueue_ stm a -> stm Bool Source #
Instances
Default TMVar
implementation
newTMVarDefault :: MonadSTM m => a -> STM m (TMVarDefault m a) Source #
newTMVarIODefault :: MonadSTM m => a -> m (TMVarDefault m a) Source #
newEmptyTMVarDefault :: MonadSTM m => STM m (TMVarDefault m a) Source #
newEmptyTMVarIODefault :: MonadSTM m => m (TMVarDefault m a) Source #
takeTMVarDefault :: MonadSTM m => TMVarDefault m a -> STM m a Source #
tryTakeTMVarDefault :: MonadSTM m => TMVarDefault m a -> STM m (Maybe a) Source #
putTMVarDefault :: MonadSTM m => TMVarDefault m a -> a -> STM m () Source #
tryPutTMVarDefault :: MonadSTM m => TMVarDefault m a -> a -> STM m Bool Source #
readTMVarDefault :: MonadSTM m => TMVarDefault m a -> STM m a Source #
tryReadTMVarDefault :: MonadSTM m => TMVarDefault m a -> STM m (Maybe a) Source #
swapTMVarDefault :: MonadSTM m => TMVarDefault m a -> a -> STM m a Source #
isEmptyTMVarDefault :: MonadSTM m => TMVarDefault m a -> STM m Bool Source #
Default TBQueue
implementation
newTQueueDefault :: MonadSTM m => STM m (TQueueDefault m a) Source #
readTQueueDefault :: MonadSTM m => TQueueDefault m a -> STM m a Source #
tryReadTQueueDefault :: MonadSTMTx (STM m) => TQueueDefault m a -> STM m (Maybe a) Source #
writeTQueueDefault :: MonadSTM m => TQueueDefault m a -> a -> STM m () Source #
isEmptyTQueueDefault :: MonadSTMTx (STM m) => TQueueDefault m a -> STM m Bool Source #
Default TBQueue
implementation
data TBQueueDefault m a Source #
newTBQueueDefault :: MonadSTM m => Natural -> STM m (TBQueueDefault m a) Source #
readTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> STM m a Source #
tryReadTBQueueDefault :: MonadSTMTx (STM m) => TBQueueDefault m a -> STM m (Maybe a) Source #
writeTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> a -> STM m () Source #
isEmptyTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> STM m Bool Source #
isFullTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> STM m Bool Source #
lengthTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> STM m Natural Source #
flushTBQueueDefault :: MonadSTM m => TBQueueDefault m a -> STM m [a] Source #
MonadThrow aliases
throwSTM :: (MonadSTMTx stm, MonadThrow stm, Exception e) => e -> stm a Source #
throwIO
specialised to stm
monad.
catchSTM :: (MonadSTMTx stm, MonadCatch stm, Exception e) => stm a -> (e -> stm a) -> stm a Source #
catch
speclialized for an stm
monad.
Deprecated API
newTMVarMDefault :: MonadSTM m => a -> m (TMVarDefault m a) Source #
Deprecated: Use newTMVarIODefault
newEmptyTMVarM :: MonadSTM m => m (TMVar m a) Source #
Deprecated: Use newEmptyTMVarIO
newEmptyTMVarMDefault :: MonadSTM m => m (TMVarDefault m a) Source #
Deprecated: Use newEmptyTMVarIODefault