vsync / spinlock

Spinlocks for kernel and userspace.


File Index

File Description Fair locks Numa-aware Reentrant
vsync/spinlock/arraylock.h Simple array-based queue lock. ✔ ❌ ❌
vsync/spinlock/caslock.h Simple spinlock based on compare-and-swap (CAS). ❌ ❌ ❌
vsync/spinlock/clhlock.h List-based lock attributed to Craig, Landin and Hagersten. ✔ ❌ ❌
vsync/spinlock/cnalock.h Compact NUMA-aware Lock. ✔ ✔ ❌
vsync/spinlock/hclhlock.h Hierarchical CLH Queue Lock. ✔ ✔ ❌
vsync/spinlock/hemlock.h Hemlock by Dice and Kogan. ✔ ❌ ❌
vsync/spinlock/hmcslock.h Hierarchical MCS lock for systems with NUMA Hierarchies. ✔ ✔ ❌
vsync/spinlock/mcslock.h Mellor-Crummey Scott Lock - the well-known scalable lock. ✔ ❌ ❌
vsync/spinlock/rec_mcslock.h Recursive MCS lock implementation using recursive.h. ✔ ❌ ❌
vsync/spinlock/rec_seqlock.h Recursive seqlock implementation using recursive.h. ❌ ❌ ✔
vsync/spinlock/rec_spinlock.h Recursive spinlock implementation using recursive.h. ❌ ❌ ✔
vsync/spinlock/rec_ticketlock.h Recursive ticketlock implementation using recursive.h. ✔ ❌ ✔
vsync/spinlock/rwlock.h Write-preferring rwlock based on semaphore and an atomic vbool_t. ❌ ❌ ❌
vsync/spinlock/semaphore.h Counting Semaphore. ❌ ❌ ❌
vsync/spinlock/seqcount.h Lightweight single-writer multi-reader optimistic lock. ❌ ❌ ❌
vsync/spinlock/seqlock.h Multi-writer multi-reader optimistic lock. ❌ ❌ ❌
vsync/spinlock/ticketlock.h Classic ticketlock with two 32-bit variables (owner and next). ✔ ❌ ❌
vsync/spinlock/ttaslock.h Test, Test and Set lock. ❌ ❌ ❌
vsync/spinlock/twalock.h Ticketlock with waiting array (TWA). ✔ ❌ ❌