stm-2.1.1.2: Software Transactional Memory

Portabilitynon-portable (requires STM)
Stabilityexperimental
Maintainerlibraries@haskell.org

Control.Concurrent.STM.TVar

Contents

Description

TVar: Transactional variables

Synopsis

TVars

data TVar a

Shared memory locations that support atomic memory transactions.

Instances

newTVar :: a -> STM (TVar a)

Create a new TVar holding a value supplied

readTVar :: TVar a -> STM a

Return the current value stored in a TVar

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

Write the supplied value into a TVar

newTVarIO :: a -> IO (TVar a)

IO version of newTVar. This is useful for creating top-level TVars using System.IO.Unsafe.unsafePerformIO, because using atomically inside System.IO.Unsafe.unsafePerformIO isn't possible.

registerDelay :: Int -> IO (TVar Bool)

Set the value of returned TVar to True after a given number of microseconds. The caveats associated with threadDelay also apply.