bits-atomic: Atomic bit operations on memory locations for low-level synchronization

[ bsd3, concurrency, data, foreign, library ] [ Propose Tags ]

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:

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 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

Recent changes:

  • 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




Automatic Flags

Build test program.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 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]
License BSD-3-Clause
Author Gabriel Wicke <>
Maintainer Gabriel Wicke <>
Category Data, Concurrency, Foreign
Source repo head: hg clone
Uploaded by GabrielWicke at 2010-09-05T07:54:05Z
Distributions FreeBSD:0.1.3
Reverse Dependencies 7 direct, 3818 indirect [details]
Executables test
Downloads 7531 total (11 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]