atomic-primops: A safe approach to CAS and other atomic ops in Haskell.
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.
Changes in 0.3:
Major internal change. Duplicate the barrier code from the GHC RTS and thus enable support for executables that are NOT built with '-threaded'.
Changes in 0.4:
Further internal changes, duplicate
cas
routine well as barriers.Add
fetchAddByteArrayInt
Add an
Unboxed
counter variant that uses movable ByteArrays on the GHC heap.
Changes in 0.5:
Remove dependency on bits-atomic unless a flag is turned on.
Changes in 0.5.0.2:
IMPORTANT BUGFIXES - don't use earlier versions. They have been marked deprecated.
Modules
[Index]
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
debug | Enable extra internal checks. | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- atomic-primops-0.6.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0.0, 0.1.0.2, 0.2.2, 0.2.2.1, 0.3, 0.4, 0.5, 0.5.0.2, 0.6, 0.6.0.5, 0.6.0.6, 0.6.1, 0.6.1.1, 0.7, 0.8, 0.8.0.2, 0.8.0.3, 0.8.0.4, 0.8.1, 0.8.1.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7, 0.8.8 (info) |
---|---|
Dependencies | base (>=4.6.0.0 && <4.8.0.0), ghc-prim, primitive [details] |
License | BSD-3-Clause |
Author | Ryan Newton |
Maintainer | rrnewton@gmail.com |
Category | Data |
Home page | https://github.com/rrnewton/haskell-lockfree/wiki |
Bug tracker | https://github.com/rrnewton/haskell-lockfree/issues |
Source repo | head: git clone https://github.com/rrnewton/haskell-lockfree/(atomic-primops) |
Uploaded | by RyanNewton at 2014-11-06T03:46:17Z |
Distributions | Arch:0.8.7, FreeBSD:0.8, LTSHaskell:0.8.8, NixOS:0.8.8, Stackage:0.8.8 |
Reverse Dependencies | 31 direct, 3888 indirect [details] |
Downloads | 48009 total (42 in the last 30 days) |
Rating | 2.0 (votes: 1) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |