XRCU is a library that provides efficient lock-less synchronization for read-mostly tasks and structures.

Luciano Lo Giudice a98f1f7caa Simplify access to hash table vector %!s(int64=3) %!d(string=hai) anos
docs f806512122 Fix doc and make 'ctz' inline in non-gcc builds %!s(int64=3) %!d(string=hai) anos
tests f8171d4b0a Harden tests %!s(int64=4) %!d(string=hai) anos
.gitignore b36a901ab3 Ignore test binary %!s(int64=5) %!d(string=hai) anos
Changes 0954bec884 Add version %!s(int64=5) %!d(string=hai) anos
LICENSE b3e6bf1eac Update README and add LICENSE %!s(int64=5) %!d(string=hai) anos
Makefile 195c70bfb0 Support the mingw toolchain %!s(int64=4) %!d(string=hai) anos
README.md b809c18cc8 Fix typo %!s(int64=3) %!d(string=hai) anos
VERSION 0954bec884 Add version %!s(int64=5) %!d(string=hai) anos
configure 43b1edd822 Clean up configure script %!s(int64=5) %!d(string=hai) anos
hash_table.cpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
hash_table.hpp a98f1f7caa Simplify access to hash table vector %!s(int64=3) %!d(string=hai) anos
lwlock.cpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
lwlock.hpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
optional.hpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
queue.cpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
queue.hpp a38b91c34e Fix data race in queue::pop %!s(int64=3) %!d(string=hai) anos
skip_list.cpp 22b8f72937 Move common code outside template class %!s(int64=3) %!d(string=hai) anos
skip_list.hpp 30cd316b15 Remove redundant fields and functions %!s(int64=3) %!d(string=hai) anos
stack.cpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
stack.hpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
utils.cpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
utils.hpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
version.hpp 0954bec884 Add version %!s(int64=5) %!d(string=hai) anos
xatomic.hpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
xrcu.cpp 7c46983d3f Fix several typos %!s(int64=3) %!d(string=hai) anos
xrcu.hpp f806512122 Fix doc and make 'ctz' inline in non-gcc builds %!s(int64=3) %!d(string=hai) anos

README.md

XRCU

This library implements efficient lockless synchronization for read-mostly tasks. In addition, it provides several data lockless data structures that make use of said synchronization, with an API that closely resembles the one used in C++'s STL. These data structures include: stacks, queues (multiple producer, multiple consumer), skip lists and hash tables.

Installation

As with most GNU packages, xrcu follows a very simple convention:

./configure
make
make install

Usage

Even though the data structures are generic and thus implemented almost completely in single headers, there's still the need to link with this library (-lxrcu) to pull the runtime.

Documentation

See docs/xrcu.html for a full overview of the design and its API.

Authors

Luciano Lo Giudice

Agustina Arzille

License

Licensed under the GPLv3.