Package0.8.8Data
atomic-primops
A safe approach to CAS and other atomic ops in Haskell.
- Version0.8.8
- CategoryData
- LicenceBSD-3-Clause
- AuthorRyan Newton
- Maintainerrrnewton@gmail.com
- Homepagegithub.com/rrnewton/haskell-lockfree/wiki
- Pinned byhackage atomic-primops 0.8.8
- Sourcehackage.haskell.org/package/atomic-primops-0.8.8
Modules
3 modules- Data.Atomics24Provides atomic memory operations on IORefs and Mutable Arrays. Pointer equality need not be maintained by a Haskell compiler. For examp…
- Data.Atomics.Counter10Integer counters providing thread-safe, lock-free mutation functions. Atomic counters are represented by a single memory location, such that
Internal modules · 1
- Data.Atomics.Internal7This module provides only the raw primops (and necessary types) for atomic
Description
After GHC 7.4 a new casMutVar# primop became available, but it's difficult to use safely, because pointer equality is a highly unstable property in Haskell. This library provides a safer method based on the concept of Tickets. . Also, this library uses the "foreign primop" capability of GHC to add access to other variants that may be of interest, specifically, compare and swap inside an array. . Note that as of GHC 7.8, the relevant primops have been included in GHC itself. This library is engineered to work pre- and post-GHC-7.8, while exposing the same interface.
Depends on
3 packages- base-4.20.2.0with GHC
- ghc-prim-0.12.0with GHC
- primitive-0.9.1.0in this set