The bits-atomic package
Atomic operations including CAS (compare-and-swap), fetch & add and variants suitable for low-level shared-memory synchronization.
The implementation is using GCC's builtin atomic operations (available in GCC >= 4) in C wrappers called through the FFI. See these links for background:
GCC wiki: http://gcc.gnu.org/wiki/Atomic
Portability: This package is primarily developed on a Linux system, but should work wherever GCC >= 4 is available. It has been confirmed as working on OSX. On Windows, it should work with Cygwin but currently fails for vanilla Haskell-Platform 2010.1.0.0 as it still packages GCC 3.x. An installer for updated versions of GCC is available at http://www.mingw.org/ and should make this package work in connection with Haskell-Platform. Feedback on compatibility would be appreciated.
Testing: The following commands can be used to compile and run the test suite:
cabal unpack bits-atomic && cd bits-atomic-* # if not yet locally available cabal configure -ftest cabal build cabal test
0.1.3: Documentation updates, especially on portability. No functional changes.
0.1.2: Avoid using System.FilePath in Setup.hs to fix build failure on hackage
|Versions||0.1.0, 0.1.1, 0.1.2, 0.1.3|
|Dependencies||base (>=4 && <6), HUnit, QuickCheck, test-framework, test-framework-hunit, test-framework-quickcheck2 [details]|
|Author||Gabriel Wicke <firstname.lastname@example.org>|
|Maintainer||Gabriel Wicke <email@example.com>|
|Category||Data, Concurrency, Foreign|
|Source repository||head: hg clone http://dev.wikidev.net/hg/bits-atomic/|
|Uploaded||Sun Sep 5 07:54:05 UTC 2010 by GabrielWicke|
|Downloads||3989 total (41 in the last 30 days)|
|Rating||(no votes yet) [estimated by rule of succession]|
|Status||Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI
Build test program.
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
For package maintainers and hackage trustees