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