c2b9fd0eba | ||
---|---|---|
.github/policies | ||
build | ||
deps | ||
devdoc | ||
inc/clds | ||
src | ||
tests | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
CODE_OF_CONDUCT.md | ||
LICENSE | ||
SECURITY.md | ||
readme.md | ||
vcpkg.json |
readme.md
C Lockless Data Structures
clds
is a general purpose C library implementing several lockless data structures.
Implemented lockless data structures:
- Singly linked list
- Hash table
This library is work in progress. The first release should happen once the first lockless structure is usable and working.
The goals are:
- Performant lockless data structures
- C11 compliant code.
Dependencies
clds
uses c-util
, which is a C library providing common functionality for basic tasks (string manipulation, list manipulation, etc.).
c-util
is available here: https://github.com/Azure/c-util and it is used as a submodule.
clds
uses ctest
as a test runner.
clds
uses umock-c
as mocking framework.
clds
uses cmake for configuring build files.
Setup
Build
- Clone
clds
by:
git clone --recursive https://github.com/Azure/clds.git
-
Create a folder named
cmake
underclds
-
Switch to the
cmake
folder and run
cmake ..
- Build
cmake --build .
Building the tests
In order to build the unit tests use:
cmake .. -Drun_unittests:bool=ON
Switching branches
After any switch of branches (git checkout for example), one should also update the submodule references by:
git submodule update --init --recursive