“A lock-free concurrency toolkit for deferred reclamation and optimistic speculation"
summary
Proposes a C++ Concurrency Toolkit that standardizes two lock-free reclamation methods: hazard pointers (fixed per-thread pointer metadata, used to prevent ABA and unsafe reclamation in pointer-copy CAS patterns) and read-copy-update (RCU) (grace-period based reclamation with very fast reader paths but potentially large unreclaimed memory). Presents an experimental C++ API and GitHub implementation, shows a hand-over-hand linked-list traversal example, compares tradeoffs (memory vs traversal speed, forward progress), and surfaces a C++ call_rcu ABI issue across translation units.
AI-written summary · about
chapters (10)
- 0:00Introduction to concurrency
- 1:40Concurrency and uncertainty
- 4:39Four key approaches
- 7:48Reference counting details
- 13:18Performance trade-offs
- 17:42Hazard pointers overview
- 31:09Hazard pointer implementation
- 38:00RCU concepts and mechanisms
- 45:47RCU implementation details
- 50:14Final thoughts and Q&A
related talks
58m“The Landscape and Exciting New Future of Safe Reclamation for High Performance”
01h 11mLock-Free Programming (or, Juggling Razor Blades), Part II
28mRevisit Multi-Reader Synchronizations for Scalable Applications
50m“Multithreading is the answer. What is the question? (part 2 of 2)”
21mEvery Data Structure Deserves Lock-Free Memory Reclamation
01h 24mConcurrency in C++20 and Beyond
19mVerifying General-Purpose RCU for Reclamation in Relaxed Memory Separation Logic
23mAn Operational Approach to Library Abstraction under Relaxed Memory Concurrency
