Safe Haskell | None |
---|---|
Language | GHC2021 |
Control.Concurrent.Class.MonadSTM.Strict
Description
This module corresponds to STM
in "stm" package
Documentation
class (Monad m, Monad (STM m)) => MonadSTM (m :: Type -> Type) where #
Minimal complete definition
atomically, newTVar, readTVar, writeTVar, retry, orElse, newTMVar, newEmptyTMVar, takeTMVar, tryTakeTMVar, putTMVar, tryPutTMVar, readTMVar, tryReadTMVar, swapTMVar, writeTMVar, isEmptyTMVar, newTQueue, readTQueue, tryReadTQueue, peekTQueue, tryPeekTQueue, flushTQueue, writeTQueue, isEmptyTQueue, unGetTQueue, newTBQueue, readTBQueue, tryReadTBQueue, peekTBQueue, tryPeekTBQueue, flushTBQueue, writeTBQueue, lengthTBQueue, isEmptyTBQueue, isFullTBQueue, unGetTBQueue, newTSem, waitTSem, signalTSem, signalTSemN, newTChan, newBroadcastTChan, dupTChan, cloneTChan, readTChan, tryReadTChan, peekTChan, tryPeekTChan, writeTChan, unGetTChan, isEmptyTChan
Methods
atomically :: HasCallStack => STM m a -> m a #
Instances
MonadSTM IO | |||||||||||||||||||||||||||||||||
Defined in Control.Monad.Class.MonadSTM.Internal Associated Types
Methods atomically :: HasCallStack => STM IO a -> IO a # newTVar :: a -> STM IO (TVar IO a) readTVar :: TVar IO a -> STM IO a writeTVar :: TVar IO a -> a -> STM IO () orElse :: STM IO a -> STM IO a -> STM IO a # modifyTVar :: TVar IO a -> (a -> a) -> STM IO () modifyTVar' :: TVar IO a -> (a -> a) -> STM IO () stateTVar :: TVar IO s -> (s -> (a, s)) -> STM IO a swapTVar :: TVar IO a -> a -> STM IO a newTMVar :: a -> STM IO (TMVar IO a) newEmptyTMVar :: STM IO (TMVar IO a) takeTMVar :: TMVar IO a -> STM IO a tryTakeTMVar :: TMVar IO a -> STM IO (Maybe a) putTMVar :: TMVar IO a -> a -> STM IO () tryPutTMVar :: TMVar IO a -> a -> STM IO Bool readTMVar :: TMVar IO a -> STM IO a tryReadTMVar :: TMVar IO a -> STM IO (Maybe a) swapTMVar :: TMVar IO a -> a -> STM IO a writeTMVar :: TMVar IO a -> a -> STM IO () isEmptyTMVar :: TMVar IO a -> STM IO Bool newTQueue :: STM IO (TQueue IO a) readTQueue :: TQueue IO a -> STM IO a tryReadTQueue :: TQueue IO a -> STM IO (Maybe a) peekTQueue :: TQueue IO a -> STM IO a tryPeekTQueue :: TQueue IO a -> STM IO (Maybe a) flushTQueue :: TQueue IO a -> STM IO [a] writeTQueue :: TQueue IO a -> a -> STM IO () isEmptyTQueue :: TQueue IO a -> STM IO Bool unGetTQueue :: TQueue IO a -> a -> STM IO () newTBQueue :: Natural -> STM IO (TBQueue IO a) readTBQueue :: TBQueue IO a -> STM IO a tryReadTBQueue :: TBQueue IO a -> STM IO (Maybe a) peekTBQueue :: TBQueue IO a -> STM IO a tryPeekTBQueue :: TBQueue IO a -> STM IO (Maybe a) flushTBQueue :: TBQueue IO a -> STM IO [a] writeTBQueue :: TBQueue IO a -> a -> STM IO () lengthTBQueue :: TBQueue IO a -> STM IO Natural isEmptyTBQueue :: TBQueue IO a -> STM IO Bool isFullTBQueue :: TBQueue IO a -> STM IO Bool unGetTBQueue :: TBQueue IO a -> a -> STM IO () newTSem :: Integer -> STM IO (TSem IO) waitTSem :: TSem IO -> STM IO () signalTSem :: TSem IO -> STM IO () signalTSemN :: Natural -> TSem IO -> STM IO () newTChan :: STM IO (TChan IO a) newBroadcastTChan :: STM IO (TChan IO a) dupTChan :: TChan IO a -> STM IO (TChan IO a) cloneTChan :: TChan IO a -> STM IO (TChan IO a) readTChan :: TChan IO a -> STM IO a tryReadTChan :: TChan IO a -> STM IO (Maybe a) peekTChan :: TChan IO a -> STM IO a tryPeekTChan :: TChan IO a -> STM IO (Maybe a) writeTChan :: TChan IO a -> a -> STM IO () unGetTChan :: TChan IO a -> a -> STM IO () isEmptyTChan :: TChan IO a -> STM IO Bool newTVarIO :: a -> IO (TVar IO a) readTVarIO :: TVar IO a -> IO a newTMVarIO :: a -> IO (TMVar IO a) newEmptyTMVarIO :: IO (TMVar IO a) newTQueueIO :: IO (TQueue IO a) newTBQueueIO :: Natural -> IO (TBQueue IO a) newTChanIO :: IO (TChan IO a) newBroadcastTChanIO :: IO (TChan IO a) | |||||||||||||||||||||||||||||||||
MonadSTM m => MonadSTM (ReaderT r m) | |||||||||||||||||||||||||||||||||
Defined in Control.Monad.Class.MonadSTM.Internal Associated Types
Methods atomically :: HasCallStack => STM (ReaderT r m) a -> ReaderT r m a # newTVar :: a -> STM (ReaderT r m) (TVar (ReaderT r m) a) readTVar :: TVar (ReaderT r m) a -> STM (ReaderT r m) a writeTVar :: TVar (ReaderT r m) a -> a -> STM (ReaderT r m) () retry :: STM (ReaderT r m) a # orElse :: STM (ReaderT r m) a -> STM (ReaderT r m) a -> STM (ReaderT r m) a # modifyTVar :: TVar (ReaderT r m) a -> (a -> a) -> STM (ReaderT r m) () modifyTVar' :: TVar (ReaderT r m) a -> (a -> a) -> STM (ReaderT r m) () stateTVar :: TVar (ReaderT r m) s -> (s -> (a, s)) -> STM (ReaderT r m) a swapTVar :: TVar (ReaderT r m) a -> a -> STM (ReaderT r m) a check :: Bool -> STM (ReaderT r m) () # newTMVar :: a -> STM (ReaderT r m) (TMVar (ReaderT r m) a) newEmptyTMVar :: STM (ReaderT r m) (TMVar (ReaderT r m) a) takeTMVar :: TMVar (ReaderT r m) a -> STM (ReaderT r m) a tryTakeTMVar :: TMVar (ReaderT r m) a -> STM (ReaderT r m) (Maybe a) putTMVar :: TMVar (ReaderT r m) a -> a -> STM (ReaderT r m) () tryPutTMVar :: TMVar (ReaderT r m) a -> a -> STM (ReaderT r m) Bool readTMVar :: TMVar (ReaderT r m) a -> STM (ReaderT r m) a tryReadTMVar :: TMVar (ReaderT r m) a -> STM (ReaderT r m) (Maybe a) swapTMVar :: TMVar (ReaderT r m) a -> a -> STM (ReaderT r m) a writeTMVar :: TMVar (ReaderT r m) a -> a -> STM (ReaderT r m) () isEmptyTMVar :: TMVar (ReaderT r m) a -> STM (ReaderT r m) Bool newTQueue :: STM (ReaderT r m) (TQueue (ReaderT r m) a) readTQueue :: TQueue (ReaderT r m) a -> STM (ReaderT r m) a tryReadTQueue :: TQueue (ReaderT r m) a -> STM (ReaderT r m) (Maybe a) peekTQueue :: TQueue (ReaderT r m) a -> STM (ReaderT r m) a tryPeekTQueue :: TQueue (ReaderT r m) a -> STM (ReaderT r m) (Maybe a) flushTQueue :: TQueue (ReaderT r m) a -> STM (ReaderT r m) [a] writeTQueue :: TQueue (ReaderT r m) a -> a -> STM (ReaderT r m) () isEmptyTQueue :: TQueue (ReaderT r m) a -> STM (ReaderT r m) Bool unGetTQueue :: TQueue (ReaderT r m) a -> a -> STM (ReaderT r m) () newTBQueue :: Natural -> STM (ReaderT r m) (TBQueue (ReaderT r m) a) readTBQueue :: TBQueue (ReaderT r m) a -> STM (ReaderT r m) a tryReadTBQueue :: TBQueue (ReaderT r m) a -> STM (ReaderT r m) (Maybe a) peekTBQueue :: TBQueue (ReaderT r m) a -> STM (ReaderT r m) a tryPeekTBQueue :: TBQueue (ReaderT r m) a -> STM (ReaderT r m) (Maybe a) flushTBQueue :: TBQueue (ReaderT r m) a -> STM (ReaderT r m) [a] writeTBQueue :: TBQueue (ReaderT r m) a -> a -> STM (ReaderT r m) () lengthTBQueue :: TBQueue (ReaderT r m) a -> STM (ReaderT r m) Natural isEmptyTBQueue :: TBQueue (ReaderT r m) a -> STM (ReaderT r m) Bool isFullTBQueue :: TBQueue (ReaderT r m) a -> STM (ReaderT r m) Bool unGetTBQueue :: TBQueue (ReaderT r m) a -> a -> STM (ReaderT r m) () newTSem :: Integer -> STM (ReaderT r m) (TSem (ReaderT r m)) waitTSem :: TSem (ReaderT r m) -> STM (ReaderT r m) () signalTSem :: TSem (ReaderT r m) -> STM (ReaderT r m) () signalTSemN :: Natural -> TSem (ReaderT r m) -> STM (ReaderT r m) () newTChan :: STM (ReaderT r m) (TChan (ReaderT r m) a) newBroadcastTChan :: STM (ReaderT r m) (TChan (ReaderT r m) a) dupTChan :: TChan (ReaderT r m) a -> STM (ReaderT r m) (TChan (ReaderT r m) a) cloneTChan :: TChan (ReaderT r m) a -> STM (ReaderT r m) (TChan (ReaderT r m) a) readTChan :: TChan (ReaderT r m) a -> STM (ReaderT r m) a tryReadTChan :: TChan (ReaderT r m) a -> STM (ReaderT r m) (Maybe a) peekTChan :: TChan (ReaderT r m) a -> STM (ReaderT r m) a tryPeekTChan :: TChan (ReaderT r m) a -> STM (ReaderT r m) (Maybe a) writeTChan :: TChan (ReaderT r m) a -> a -> STM (ReaderT r m) () unGetTChan :: TChan (ReaderT r m) a -> a -> STM (ReaderT r m) () isEmptyTChan :: TChan (ReaderT r m) a -> STM (ReaderT r m) Bool newTVarIO :: a -> ReaderT r m (TVar (ReaderT r m) a) readTVarIO :: TVar (ReaderT r m) a -> ReaderT r m a newTMVarIO :: a -> ReaderT r m (TMVar (ReaderT r m) a) newEmptyTMVarIO :: ReaderT r m (TMVar (ReaderT r m) a) newTQueueIO :: ReaderT r m (TQueue (ReaderT r m) a) newTBQueueIO :: Natural -> ReaderT r m (TBQueue (ReaderT r m) a) newTChanIO :: ReaderT r m (TChan (ReaderT r m) a) newBroadcastTChanIO :: ReaderT r m (TChan (ReaderT r m) a) |
throwSTM :: forall (m :: Type -> Type) e a. (MonadSTM m, MonadThrow (STM m), Exception e) => e -> STM m a #
class (MonadSTM m, Monad (InspectMonadSTM m)) => MonadInspectSTM (m :: Type -> Type) where #
Methods
inspectTVar :: proxy m -> TVar m a -> InspectMonadSTM m a #
inspectTMVar :: proxy m -> TMVar m a -> InspectMonadSTM m (Maybe a) #
Instances
MonadInspectSTM IO | |||||
Defined in Control.Monad.Class.MonadSTM.Internal Associated Types
Methods inspectTVar :: proxy IO -> TVar IO a -> InspectMonadSTM IO a # inspectTMVar :: proxy IO -> TMVar IO a -> InspectMonadSTM IO (Maybe a) # | |||||
MonadInspectSTM m => MonadInspectSTM (ReaderT r m) | |||||
Defined in Control.Monad.Class.MonadSTM.Internal Associated Types
Methods inspectTVar :: proxy (ReaderT r m) -> TVar (ReaderT r m) a -> InspectMonadSTM (ReaderT r m) a # inspectTMVar :: proxy (ReaderT r m) -> TMVar (ReaderT r m) a -> InspectMonadSTM (ReaderT r m) (Maybe a) # |
class MonadSTM m => MonadLabelledSTM (m :: Type -> Type) #
Minimal complete definition
labelTVar
Instances
MonadLabelledSTM IO | |
Defined in Control.Monad.Class.MonadSTM.Internal Methods labelTVar :: TVar IO a -> String -> STM IO () labelTMVar :: TMVar IO a -> String -> STM IO () labelTQueue :: TQueue IO a -> String -> STM IO () labelTBQueue :: TBQueue IO a -> String -> STM IO () labelTArray :: (Ix i, Show i) => TArray IO i e -> String -> STM IO () labelTSem :: TSem IO -> String -> STM IO () labelTChan :: TChan IO a -> String -> STM IO () labelTVarIO :: TVar IO a -> String -> IO () labelTMVarIO :: TMVar IO a -> String -> IO () labelTQueueIO :: TQueue IO a -> String -> IO () labelTBQueueIO :: TBQueue IO a -> String -> IO () labelTArrayIO :: (Ix i, Show i) => TArray IO i e -> String -> IO () labelTSemIO :: TSem IO -> String -> IO () labelTChanIO :: TChan IO a -> String -> IO () |
class MonadInspectSTM m => MonadTraceSTM (m :: Type -> Type) where #
Minimal complete definition
traceTVar, traceTQueue, traceTBQueue
Methods
traceTSem :: proxy m -> TSem m -> (Maybe Integer -> Integer -> InspectMonadSTM m TraceValue) -> STM m () #
traceTSemIO :: TSem m -> (Maybe Integer -> Integer -> InspectMonadSTM m TraceValue) -> m () #
Instances
type family InspectMonadSTM (m :: Type -> Type) :: Type -> Type #
Instances
type InspectMonadSTM IO | |
Defined in Control.Monad.Class.MonadSTM.Internal | |
type InspectMonadSTM (ReaderT r m) | |
Defined in Control.Monad.Class.MonadSTM.Internal |
data TraceValue where #
Constructors
TraceValue | |
Fields
|
Bundled Patterns
pattern DontTrace :: TraceValue | |
pattern TraceDynamic :: () => Typeable tr => tr -> TraceValue | |
pattern TraceString :: String -> TraceValue |