base-4.3.1.0: Basic libraries

Portabilityportable
Stabilityexperimental
Maintainerlibraries@haskell.org

Data.IORef

Contents

Description

Mutable references in the IO monad.

Synopsis

IORefs

data IORef a Source

A mutable variable in the IO monad

Instances

newIORef :: a -> IO (IORef a)Source

Build a new IORef

readIORef :: IORef a -> IO aSource

Read the value of an IORef

writeIORef :: IORef a -> a -> IO () Source

Write a new value into an IORef

modifyIORef :: IORef a -> (a -> a) -> IO () Source

Mutate the contents of an IORef

atomicModifyIORef :: IORef a -> (a -> (a, b)) -> IO bSource

Atomically modifies the contents of an IORef .

This function is useful for using IORef in a safe way in a multithreaded program. If you only have one IORef , then using atomicModifyIORef to access and modify it will prevent race conditions.

Extending the atomicity to multiple IORef s is problematic, so it is recommended that if you need to do anything more complicated then using Control.Concurrent.MVar.MVar instead is a good idea.

mkWeakIORef :: IORef a -> IO () -> IO (Weak (IORef a))Source

Make a Weak pointer to an IORef

AltStyle によって変換されたページ (->オリジナル) /