| Portability | portable |
|---|---|
| Stability | experimental |
| Maintainer | libraries@haskell.org |
Data.IORef
Contents
Description
Mutable references in the IO monad.
IORefs
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 IORefs 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.