C Lockless Data Structures
Перейти к файлу
Parth Aggarwal c2b9fd0eba
Update dependencies (#274)
2024-08-19 11:27:58 -07:00
.github/policies
build
deps Update dependencies (#274) 2024-08-19 11:27:58 -07:00
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 under clds

  • 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