extra-1.6.4: Extra functions I use.

Data.IORef.Extra

Description

This module extends Data.IORef with operations forcing the value written to the IORef. Some of these functions are available in later versions of GHC, but not all.

Synopsis

# Documentation

module Data.IORef

modifyIORef' :: IORef a -> (a -> a) -> IO () #

Strict version of modifyIORef

Since: 4.6.0.0

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

Evaluates the value before calling writeIORef.

atomicModifyIORef' :: IORef a -> (a -> (a, b)) -> IO b #

Strict version of atomicModifyIORef. This forces both the value stored in the IORef as well as the value returned.

Since: 4.6.0.0

atomicWriteIORef :: IORef a -> a -> IO () #

Variant of writeIORef with the "barrier to reordering" property that atomicModifyIORef has.

Since: 4.6.0.0

atomicWriteIORef' :: IORef a -> a -> IO () Source #

Evaluates the value before calling atomicWriteIORef.