relude-1.2.1.0: Safe, performant, user-friendly and lightweight Haskell Standard Library
Copyright(c) 2016 Stephen Diehl
(c) 2016-2018 Serokell
(c) 2018-2023 Kowainik
LicenseMIT
MaintainerKowainik <xrom.xkov@gmail.com>
StabilityStable
PortabilityPortable
Safe HaskellSafe
LanguageHaskell2010

Relude.Lifted.Concurrent

Description

Lifted MVar and STM functions.

Synopsis

MVar

data MVar a #

Instances

Instances details
NFData1 MVar 
Instance details

Defined in Control.DeepSeq

Methods

liftRnf :: (a -> ()) -> MVar a -> ()

NFData (MVar a) 
Instance details

Defined in Control.DeepSeq

Methods

rnf :: MVar a -> () #

Eq (MVar a) 
Instance details

Defined in GHC.MVar

Methods

(==) :: MVar a -> MVar a -> Bool #

(/=) :: MVar a -> MVar a -> Bool #

newEmptyMVar :: MonadIO m => m (MVar a) Source #

Lifted to MonadIO version of newEmptyMVar.

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

Lifted to MonadIO version of newMVar.

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

Lifted to MonadIO version of putMVar.

readMVar :: MonadIO m => MVar a -> m a Source #

Lifted to MonadIO version of readMVar.

swapMVar :: MonadIO m => MVar a -> a -> m a Source #

Lifted to MonadIO version of swapMVar.

takeMVar :: MonadIO m => MVar a -> m a Source #

Lifted to MonadIO version of takeMVar.

tryPutMVar :: MonadIO m => MVar a -> a -> m Bool Source #

Lifted to MonadIO version of tryPutMVar.

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

Lifted to MonadIO version of tryReadMVar.

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

Lifted to MonadIO version of tryTakeMVar.

STM

data STM a #

Instances

Instances details
Alternative STM 
Instance details

Defined in GHC.Conc.Sync

Methods

empty :: STM a #

(<|>) :: STM a -> STM a -> STM a #

some :: STM a -> STM [a] #

many :: STM a -> STM [a] #

Applicative STM 
Instance details

Defined in GHC.Conc.Sync

Methods

pure :: a -> STM a #

(<*>) :: STM (a -> b) -> STM a -> STM b #

liftA2 :: (a -> b -> c) -> STM a -> STM b -> STM c #

(*>) :: STM a -> STM b -> STM b #

(<*) :: STM a -> STM b -> STM a #

Functor STM 
Instance details

Defined in GHC.Conc.Sync

Methods

fmap :: (a -> b) -> STM a -> STM b #

(<$) :: a -> STM b -> STM a #

Monad STM 
Instance details

Defined in GHC.Conc.Sync

Methods

(>>=) :: STM a -> (a -> STM b) -> STM b #

(>>) :: STM a -> STM b -> STM b #

return :: a -> STM a #

MonadPlus STM 
Instance details

Defined in GHC.Conc.Sync

Methods

mzero :: STM a #

mplus :: STM a -> STM a -> STM a #

Monoid a => Monoid (STM a) 
Instance details

Defined in GHC.Conc.Sync

Methods

mempty :: STM a #

mappend :: STM a -> STM a -> STM a #

mconcat :: [STM a] -> STM a #

Semigroup a => Semigroup (STM a) 
Instance details

Defined in GHC.Conc.Sync

Methods

(<>) :: STM a -> STM a -> STM a #

sconcat :: NonEmpty (STM a) -> STM a #

stimes :: Integral b => b -> STM a -> STM a #

atomically :: MonadIO m => STM a -> m a Source #

Lifted to MonadIO version of atomically.

throwSTM :: Exception e => e -> STM a #

catchSTM :: Exception e => STM a -> (e -> STM a) -> STM a #

TVar

data TVar a #

Instances

Instances details
Eq (TVar a) 
Instance details

Defined in GHC.Conc.Sync

Methods

(==) :: TVar a -> TVar a -> Bool #

(/=) :: TVar a -> TVar a -> Bool #

newTVarIO :: MonadIO m => a -> m (TVar a) Source #

Lifted to MonadIO version of newTVarIO.

readTVarIO :: MonadIO m => TVar a -> m a Source #

Lifted to MonadIO version of readTVarIO.

modifyTVar' :: TVar a -> (a -> a) -> STM () #

newTVar :: a -> STM (TVar a) #

readTVar :: TVar a -> STM a #

writeTVar :: TVar a -> a -> STM () #

TMVar

data TMVar a #

Instances

Instances details
Eq (TMVar a) 
Instance details

Defined in Control.Concurrent.STM.TMVar

Methods

(==) :: TMVar a -> TMVar a -> Bool #

(/=) :: TMVar a -> TMVar a -> Bool #

newTMVar :: a -> STM (TMVar a) #

newTMVarIO :: MonadIO m => a -> m (TMVar a) Source #

Lifted to MonadIO version of newTMVarIO.

newEmptyTMVarIO :: MonadIO m => m (TMVar a) Source #

Lifted to MonadIO version of newEmptyTMVarIO.

takeTMVar :: TMVar a -> STM a #

putTMVar :: TMVar a -> a -> STM () #

readTMVar :: TMVar a -> STM a #

swapTMVar :: TMVar a -> a -> STM a #

tryPutTMVar :: TMVar a -> a -> STM Bool #

mkWeakTMVar :: TMVar a -> IO () -> IO (Weak (TMVar a)) #