Copyright | (c) 2019 Composewell Technologies |
---|---|
License | BSD3 |
Maintainer | streamly@composewell.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
A mutable variable in a mutation capable monad (IO) holding a Unboxed
value. This allows fast modification because of unboxed storage.
Multithread Consistency Notes
In general, any value that straddles a machine word cannot be guaranteed to
be consistently read from another thread without a lock. GHC heap objects
are always machine word aligned, therefore, a IORef
is also word aligned.
On a 64-bit platform, writing a 64-bit aligned type from one thread and
reading it from another thread should give consistent old or new value. The
same holds true for 32-bit values on a 32-bit platform.
Documentation
Construction
Write
modifyIORef' :: Unbox a => IORef a -> (a -> a) -> IO () Source #
Modify the value of an IORef
using a function with strict application.
Pre-release