A lock-free concurrent toolkit for hazard pointers
summary
Proposal pushes hazard pointers and read‑copy‑update into Concurrency TS2 with concrete APIs: RAII HP owner that protects pointers, retire-not-delete reclamation, and a C API with rcu_read_lock / synchronize_rcu / call_rcu. Claims: HP gives bounded, wait‑free reclamation; RCU gives extremely cheap reads but unbounded deferred frees and a tricky call_rcu destructor dispatch problem for C++. Implements exist in Facebook folly and Linux kernel; Anthony Williams supplies an end‑to‑end atomic_shared_ptr via double CAS. Memory_order_consume must be fixed for efficient implementations.
AI-written summary · about
chapters (10)
- 0:00Start
- 27:05Running Example: Wide CAS
- 33:07Unsale Memory Reclamation
- 34:58Hazard Pointers Reclaiming Objects
- 37:14Wide CAS with Hazard Pointers Template Interface
- 38:15Hazard Pointers System
- 38:50Object Life Cycle
- 40:01Hazard Pointer Domains
- 40:51Design Dimensions
- 41:58Domain View
related talks
01h 04mConcurrency TS2: Improved C++ Concurrency and Lock-free Programming
01h 02mA Lock-Free Atomic Shared Pointer in Modern Cpp
45mRust: safe and concurrent. But how does it do it?
15mTowards Safe HPC: Productivity and Performance via Rust Interfaces for a Distribu...
01h 00mLock-Free Programming (or, Juggling Razor Blades), Part I
52mBest Practices for Concurrency
50mBack to Basics: Smart Pointers and RAII
01h 04m[old version]The C++20 Synchrononization Library
