#queue #unbounded #blocking #memory-allocator #lock-free #persistent-memory

nightly cc-queue

Fatourou and Kallimanis's CC Queue, ccqueue, an unbounded, concurrent blocking queue faster than the classic Michael & Scott queue, suitable for use with different memory allocators

2 releases

Uses old Rust 2015

0.0.1 Jan 30, 2018
0.0.0 Jan 30, 2018

#8 in #persistent-memory

MIT license

32KB
623 lines

cc-queue

cc-queue is an implementation in Rust of Fatourou and Kallimanis's blocking, unbounded queue known as CCQueue. It has better performance than the classic unbounded queue MSQueue, the Michael & Scott Queue.

Licensing

The license for this project is MIT.


lib.rs:

cc-queue

A CC Queue, which is:-

  • Non-blocking
  • Thread-safe
  • Concurrent
  • Unbounded
  • Faster than the MSQueue (Michael-Scott Queue, as used in Java)

And suitable for use with multiple memory allocators, including ones that use persistent memory.

To use it

  1. Create a new instance of CCQueue.
  2. Create a handle per-thread using CCQueue.new_per_thread_handle().
  3. Enqueue and dequeue

Notes on the API

The API may need to change to make it easier to manage the per-thread handle objects.

No runtime deps