stm-2.5.0.1: Software Transactional Memory
Copyright (c) The University of Glasgow 2004
License BSD-style (see the file libraries/base/LICENSE)
Maintainer libraries@haskell.org
Stability experimental
Portability non-portable (requires STM)
Safe Haskell Trustworthy
Language Haskell2010

Control.Concurrent.STM.TVar

Contents

Description

Synopsis

TVars

data TVar a Source #

Shared memory locations that support atomic memory transactions.

Instances

Instances details
Eq ( TVar a)

Since: base-4.8.0.0

Instance details

Defined in GHC.Conc.Sync

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

Create a new TVar holding a value supplied

newTVarIO :: a -> IO ( TVar a) Source #

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

readTVar :: TVar a -> STM a Source #

Return the current value stored in a TVar .

readTVarIO :: TVar a -> IO a Source #

Return the current value stored in a TVar . This is equivalent to

 readTVarIO = atomically . readTVar

but works much faster, because it doesn't perform a complete transaction, it just reads the current value of the TVar .

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

Write the supplied value into a TVar .

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

Mutate the contents of a TVar . N.B. , this version is non-strict.

Since: 2.3

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

Strict version of modifyTVar .

Since: 2.3

stateTVar :: TVar s -> (s -> (a, s)) -> STM a Source #

Like modifyTVar' but the function is a simple state transition that can return a side value which is passed on as the result of the STM .

Since: 2.5.0

swapTVar :: TVar a -> a -> STM a Source #

Swap the contents of a TVar for a new value.

Since: 2.3

registerDelay :: Int -> IO ( TVar Bool ) Source #

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

mkWeakTVar :: TVar a -> IO () -> IO ( Weak ( TVar a)) Source #

Make a Weak pointer to a TVar , using the second argument as a finalizer to run when TVar is garbage-collected

Since: 2.4.3