📶 A lock- and wait-free hashtable (and an array too)
mulle-concurrent is a library for lock- and wait-free data structures.
Wait-freeness is a desirable property for “hotly” contested data structures
in multi-threaded environments.
Many of the ideas are taken from Preshing on Programming: A Resizable, Concurrent Map.
The definition of concurrent and wait-free are from concurrencyfreaks.blogspot.de
Release Version | Release Notes |
---|---|
RELEASENOTES |
Data Structure | Description |
---|---|
mulle-concurrent-hashmap |
A wait and lock free hashmap |
mulle-concurrent-pointerarray |
A wait and lock free array |
This project is a component of the mulle-core library. As such you usually will not add or install it
individually, unless you specifically do not want to link against
mulle-core
.
Use mulle-sde to add mulle-concurrent to your project:
mulle-sde add github:mulle-concurrent/mulle-concurrent
To only add the sources of mulle-concurrent with dependency
sources use clib:
clib install --out src/mulle-concurrent mulle-concurrent/mulle-concurrent
Add -isystem src/mulle-concurrent
to your CFLAGS
and compile all the sources that were downloaded with your project.
Use mulle-sde to build and install mulle-concurrent and all dependencies:
mulle-sde install --prefix /usr/local \
https://github.com/mulle-concurrent/mulle-concurrent/archive/latest.tar.gz
Install the requirements:
Requirements | Description |
---|---|
mulle-aba | 🚮 A lock-free, cross-platform solution to the ABA problem |
Download the latest tar or zip archive and unpack it.
Install mulle-concurrent into /usr/local
with cmake:
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_PREFIX_PATH=/usr/local \
-DCMAKE_BUILD_TYPE=Release &&
cmake --build build --config Release &&
cmake --install build --config Release
Nat! for Mulle kybernetiK