Ck Versions Save

Concurrency primitives, safe memory reclamation mechanisms and non-blocking (including lock-free) data structures designed to aid in the research, design and implementation of high performance concurrent systems developed in C99+.

0.7.2

3 weeks ago

This release adds support for riscv, as provided by Mitchell Horne, as well a miscellaneous bug fixes and improvments

0.7.1

2 years ago

0.7.0

5 years ago

0.6.0

7 years ago

Concurrency Kit 0.6.0 has been released. This release contains a critical bug fix to ck_epoch idle early exit (all users of ck_epoch are recommended to upgrade), support for AArch64 (including LSE), cygwin support, improved GCC back-end support and more.

aarch64: Thanks to Olivier Houchard for adding intial support for AArch64. Thanks to Alexey Kopytov akopytov@gmail... for adding support for LSE, enabled by passing --enable-lse to configure.

ck_epoch: The core algorithm (including lock-free improvements) is not affected by this change. An optimization was introduced a while ago to allow synchronize to succeed on an idle system. Unfortunately, this optimization was incorrect. The fix is highly targeted. ck_epoch will only short-circuit if all threads are seen as idle for a given epoch. This could be improved further to track idle threads across epochs but would require more substantive validation. Essentially, we would want to eliminate threads observed as idle from the scan step. We may revisit this in a future release if benchmarks identify it as a worthy optimization for real-world systems. Thanks to Julie Zhao julie.zhao@sparkpost... for reporting the problem and helping me investigate (issue is not reproducible on our current fleet).

ck_pr/gcc: Olivier cleaned-up the GCC back-end so it doesn't generate warnings re:constness. This port is meant to be used in cases where a first-class ck_pr implementation is not available.

cygwin: Thanks to Harry Bowden hbowden@digitalriver... for adding cygwin support.

documentation: Minor fixes / improvements to the documentation.

Thanks to all contributors of this release.

0.5.2

7 years ago

Concurrency Kit 0.5.2 has been released. This release contains performance improvements and a bug fix to ck_epoch, a bug fix to the pointer-based ck_ring_enqueue_mpsc operation, regression test improvements, fixes to ck_ht custom hash callback functions, a bug fix to ck_rhs and documentation improvements.

Documentation: Roman Lebedev has fixed invalid references to TAILQ in ck_queue and added documentation for STAILQ. Olivier Houchard has updated ck_epoch_poll documentation.

ck_ht: Roman Lebedev has committed a fix to ck_ht. Previously, user-supplied hash functions were not being called by ck_ht_hash. Users that call ck_ht_hash but use a custom hash function are affected.

ck_rhs: Olivier Houchard has fixed an uninitialized memory problem.

ck_epoch: Synchronize operation is now completely serialized for multi-writer scenario.

ck_ring: 铁哥 has fixed an issue in ck_ring_enqueue_mpsc pointer-operation. Users of CK_RING_* generic interface are unaffected.

Thanks to all contributors of this release.