* **Update 2015-02-06: Mintomic is no longer being maintained. Native C atomics are available in Turf instead: https://github.com/preshing/turf/tree/master/turf/c ***
Mintomic (short for “minimal atomic”) is an API for low-level lock-free programming in C and C++.
- Efficient machine code generation.
- Straightforward implementation.
- Compatibility with older compilers. C11 and C++11 not required.
For more information, see the blog post Introducing Mintomic.
Mintomic currently supports x86, x64, PowerPC, ARMv6 and ARMv7 and has been tested on Windows, MacOS, iOS, Linux and Xbox 360.
CMake is required to build & run the test suite.
Mintomic consists of the following submodules:
Provides portable memory fences such as
mint_thread_fence_acquire, atomic read-modify-write operations such as
mint_fetch_add_32_relaxed, plus various helper functions, macros and types. Implemented in pure C, mainly as a set of header files.
A portable API for thread creation, semaphores, time and date services, sleep, and thread and process IDs. Basically, the system services you need in order to run lock-free code in the first place, plus a few extras. Implemented in pure C.
A collection of data structures and modules built on top of Mintomic and MintSystem. Written as a platform-independent library in C++.
A suite of unit tests in platform-independent C++ to validate the implemention of Mintomic primitives.
Mintomic is distributed under the Modified BSD License. See the