Projects / Concurrency Kit

Concurrency Kit

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.

Operating Systems

RSS Recent releases

  •  26 Feb 2014 00:54

    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.

    •  24 Feb 2014 03:04

      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.

      •  05 Jan 2014 01:47

        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.

        •  03 Jan 2014 00:27

          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.

          •  21 Dec 2013 08:00

            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.


            Project Spotlight

            Razer device configuration tool

            A Razer device configuration tool.


            Project Spotlight


            Protocol Buffers for R6RS Scheme.