bits-atomic

Atomic bit operations on memory locations for low-level synchronization

Latest on Hackage:0.1.3

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed and maintained by Gabriel Wicke

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

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