@hackage pvar1.0.0.0
Mutable variable with primitive values
Categories
License
BSD-3-Clause
Maintainer
alexey@kuleshevi.ch
Links
Versions
pvar
Interface for a mutable variable PVar that can hold values that have Prim instance.
Status
| Language | Travis | Azure | Coveralls |
|---|---|---|---|
| Package | Hackage | Nightly | LTS |
|---|---|---|---|
pvar |
Overview
Main features include:
- Performance. There is practically no overhead when compared to operating on pure values,
although there is a higher memory overhead, since
PVaris backed by aMutableByteArray# - Atomic operations for
PVars withIntvalues. This includes a unique function that is not available inghc-primout of the box:
atomicModifyIntPVar :: PrimMonad m => PVar m Int -> (Int -> (Int, a)) -> m a
- Works in
PrimMonad, therefore it is usable withST,IOand various transformer monads. - Easy access to
PVarcontents withStorable isByteArrayPinned,isMutableByteArrayPinnedfunction that work on ghc-7.10 and ghc-8.0 as well as all the newer ones.