LIO.LIORef
Contents
Description
This module implements labeled IORefs. The interface is analogous to Data.IORef, but the operations take place in the LIO monad. Moreover, reading the LIORef calls taint, while writing it calls wguard.
- data LIORef l a
- newLIORef :: Label l => l -> a -> LIO l s (LIORef l a)
- labelOfLIORef :: Label l => LIORef l a -> l
- readLIORef :: Label l => LIORef l a -> LIO l s a
- writeLIORef :: Label l => LIORef l a -> a -> LIO l s ()
- atomicModifyLIORef :: Label l => LIORef l a -> (a -> (a, b)) -> LIO l s b
- newLIORefP :: Priv l p => p -> l -> a -> LIO l s (LIORef l a)
- readLIORefP :: Priv l p => p -> LIORef l a -> LIO l s a
- writeLIORefP :: Priv l p => p -> LIORef l a -> a -> LIO l s ()
- atomicModifyLIORefP :: Priv l p => p -> LIORef l a -> (a -> (a, b)) -> LIO l s b
- newLIORefTCB :: Label l => l -> a -> LIO l s (LIORef l a)
- readLIORefTCB :: Label l => LIORef l a -> LIO l s a
- writeLIORefTCB :: Label l => LIORef l a -> a -> LIO l s ()
- atomicModifyLIORefTCB :: Label l => LIORef l a -> (a -> (a, b)) -> LIO l s b
Documentation
labelOfLIORef :: Label l => LIORef l a -> lSource
readLIORef :: Label l => LIORef l a -> LIO l s aSource
atomicModifyLIORef :: Label l => LIORef l a -> (a -> (a, b)) -> LIO l s bSource
With privileges
newLIORefP :: Priv l p => p -> l -> a -> LIO l s (LIORef l a)Source
readLIORefP :: Priv l p => p -> LIORef l a -> LIO l s aSource
atomicModifyLIORefP :: Priv l p => p -> LIORef l a -> (a -> (a, b)) -> LIO l s bSource
TCB
newLIORefTCB :: Label l => l -> a -> LIO l s (LIORef l a)Source
readLIORefTCB :: Label l => LIORef l a -> LIO l s aSource
atomicModifyLIORefTCB :: Label l => LIORef l a -> (a -> (a, b)) -> LIO l s bSource