vsync / queue

Queues, priority queues and ringbuffers.


File Index

File Description Linearizable Lock-free SMR-required Unbounded-Queue
vsync/queue/bounded_locked.h Multi-producer, multi-consumer bounded queue protected by a spinlock. ✔ ❌ ❌ ❌
vsync/queue/bounded_mpmc.h Lockless, multi-producer, multi-consumer bounded queue. ✔ ❌ ❌ ❌
vsync/queue/bounded_spsc.h Single-producer, single-consumer, wait-free bounded queue. ✔ ✔ ❌ ❌
vsync/queue/cachedq.h Lockless, multi-producer, multi-consumer queue. ✔ ❌ ❌ ❌
vsync/queue/chaselev.h Chase-Lev Work-Stealing bounded deque. ❌ ✔ ❌ ❌
vsync/queue/unbounded_queue_lf.h Lock-free unbounded queue. ✔ ✔ ✔ ✔
vsync/queue/unbounded_queue_lf_recycle.h Lock-free recycle unbounded queue. ✔ ✔ ❌ ✔
vsync/queue/unbounded_queue_total.h Unbounded blocking total queue. ✔ ❌ ❌ ✔
vsync/queue/vqueue_prio_heap_based.h Unbounded heap-based priority queue. ✔ ❌ ❌ ❌
vsync/queue/vqueue_prio_skiplist_based.h Skiplist-based priority queue implementation. ✔ ✔ ✔ ✔
vsync/queue/vqueue_prio_stack_array_based.h Array-based bounded priority queue. ✔ ✔ ✔ ✔
vsync/queue/vqueue_prio_stack_tree_based.h   ❌ ❌ ❌ ❌