Release Notes: This release includes a new low latency copy-safe single-writer read-write lock, a reference implementation of task-fair read-write locks, significant improvements to the build system and a lot of new functionality for ck_bitmap, a bugfix for 64-bit immediates on x86_64 for ck_pr, deinitialization routines for ck_hp_fifo and ck_fifo, a bugfix for ck_bytelock on 32-bit architectures, new ck_cc primitives, and a compilation fix for type specialized ck_ring. Last but not least, documentation has been added for ck_pflock.
Release Notes: This release fixes a calculation error in ck_bitmap_union, which could lead to a crash condition. This was missed due to a lack of the typical testing cycle for the function. All other functionality is unaffected.
Release Notes: Critical bugfixes were made to ck_bytelock for unslotted readers and 32-bit architectures. A new robin-hood hash set implementation was added which provides excellent stable performance for delete and write-heavy workloads while still providing wait-free progress for writers and lock-free progress for readers. A new operation has been added to the bitmap, ck_bitmap_union, which provides a (non-linearized) union of two bitmaps. Some other API changes were made to ck_bitmap. The library now uses the correct naming convention for Darwin targets.
Release Notes: This release includes a critical bug fix for ck_ht_gc that affects CK_HT_MODE_DIRECT hash tables (it does not affect bytestring hash tables). Additional optimizations were made to ck_ht_gc and ck_hs_gc for empty hash tables.
Release Notes: Acquire and release fences have finally been introduced. Significant performance improvements were made to spinlock, rwlock, pflock, cohorts, blocks, and bytelocks on RMO and PSO architectures (PPC*, SPARCv9+, and ARM). Significant improvements have been made to ck_hs write-side performance in the presence of deletes. Latency improvements to ck_epoch for read-side critical sections on x86 were introduced. Last but not least, the parametric ck_ring has been re-introduced following discussion and feedback.
Release Notes: This release includes significant performance improvements to the hash set and hash table implementations, support for shared memory and DMA backed bounded ring buffers (currently only for the pointer-sized implementation), hierarchical CLH spinlocks, performance improvements to epoch reclamation, support for finer-grained memory barriers on ARMv7+, and documentation for restricted transactional memory.
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.