Linearizable
Group of algorithms linearizable algorithms.
File Index
| File | Description | Linearizable | Lock-free | SMR-required | Unbounded-Queue |
|---|---|---|---|---|---|
| vsync/map/hashtable_standard.h | This is a lock-free listset based hashtable. | ✔ | ✔ | ✔ | ❌ |
| vsync/map/listset_coarse.h | This implementation of listset uses one lock to serialize all operations. | ✔ | ❌ | ✔ | ❌ |
| vsync/map/listset_fine.h | This implementation of listset uses fine grained locking. | ✔ | ❌ | ✔ | ❌ |
| vsync/map/listset_lazy.h | This is a partially parallel implementation with lock-free get. | ✔ | ❌ | ✔ | ❌ |
| vsync/map/listset_lf.h | Lock-free implementation of listset. | ✔ | ✔ | ✔ | ❌ |
| vsync/map/listset_opt.h | This implementation is an optimized verison of listset_fine. | ✔ | ❌ | ✔ | ❌ |
| vsync/map/simpleht.h | Simple lock-free hashtable. | ✔ | ✔ | ❌ | ❌ |
| vsync/map/skiplist_lf.h | Lock-free concurrent skiplist. | ✔ | ✔ | ✔ | ❌ |
| vsync/map/treeset_bst_coarse.h | This implementation of treeset uses unbalanced binary search tree (BST) and coarse-grained locking. | ✔ | ❌ | ❌ | ❌ |
| vsync/map/treeset_bst_fine.h | This implementation of treeset uses unbalanced binary search tree (BST) and fine-grained locking. | ✔ | ❌ | ❌ | ❌ |
| vsync/map/treeset_rb_coarse.h | This implementation of treeset uses balanced red-black tree (RB) and coarse-grained locking. | ✔ | ❌ | ❌ | ❌ |
| vsync/map/treeset_rb_fine.h | This implementation of treeset uses balanced red-black tree (RB) and fine-grained locking. | ✔ | ❌ | ❌ | ❌ |
| 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/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/stack/elimination_stack.h | Unbounded lock-free stack with elimination backoff. | ✔ | ✔ | ✔ | ❌ |
| vsync/stack/quack.h | Lockfree concurrent stack/queue (Treiber stack) | ✔ | ✔ | ❌ | ❌ |
| vsync/stack/xbo_stack.h | Unbounded lock-free stack with exponential backoff. | ✔ | ✔ | ✔ | ❌ |