Concurrency Kit provides a plethora of concurrency primitives and lock-less and lock-free data structures designed to aid in the design and implementation of high performance scalable concurrent systems. It was designed to minimize dependencies on operating system-specific interfaces, and most of the interface relies only on a strict subset of the standard library and more popular compiler extensions.
|Tags||concurrency Multicore multithread pthreads lock-free|
|Operating Systems||FreeBSD Linux (64 Bit) Mac OS X Solaris (Sparc 64 bit) Solaris MinGW Windows (MinGW)|
|Implementation||C99 GNU99 C Assembly|
Release Notes: This release includes various manual page fixes and introduces a simple SPMC non-blocking dense pointer array with an explicitly invoked linearization point to allow for simpler forms of elimination for put to remove and remove to put workloads. It is designed primarily for iteration heavy workloads. See the ck_array manual pages for more information. Expect modifications to this interface in future releases.
Release Notes: This release consists of crucial bugfixes to the ARM port as well as improvements in the form of Thumb 2 support. An issue which prevented core counts from being counted correctly on the Linux ARM port has also been fixed.
Release Notes: This release adds support for ARMv5-ARMv7. It includes simplification improvements to the ck_spinlock API in the form of additional initializers for ease-of-use and a strict aliasing fix for ck_spinlock_unlock. Additional manual pages have been added. CK_BITMAP_BITS has been updated to not require the second argument.
Release Notes: This release adds support for Intel TSX extensions in the form of the ck_pr_rtm interface, support for lock elision, a ck_hs_move operation, and support for reader-writer cohort locks.
Release Notes: This release adds a missing compiler barrier in no-op ck_pr_fence operations, improves performance of ck_hs, fixes a bug in proportional back off ticket locks on x86, adds support for a swap operation in the hash set, and adds FreeBSD port.