Hazard Pointer Synchronous Reclamation Beyond Concurrency TS2
summary
Proposes a concrete replacement for slow global cleanup: a cohorts interface that groups retired objects so destroying a cohort guarantees all its destructors complete, with algorithms to interoperate with asynchronous reclamation without global stalls. Describes sharded domain lists, per‑cohort reclaimable queues, and why naive global cleanup fails at tens of thousands of hazard pointers. Shows production code in Folly, reports it scales where global cleanup blocks, and gives a roadmap for standardizing beyond Concurrency TS2.
AI-written summary · about
chapters (12)
- 0:00Intro
- 0:46Basic Hazard Pointer Algorithm
- 2:27Concurrency TS2 Essential Hazard Pointer Interface Copcon 29
- 3:21Example Using Hazard Pointers
- 9:33Synchronous Reclamation in Concurrency TS2
- 24:57Basic Cohort Implementation
- 27:43Asynchronous Reclamation Revisited
- 31:13Cohort Structures Revisited
- 33:39Simple Cohort Use Example
- 37:40Asynchronous Reclamation Re-Revisited
- 45:31Synchronous Reclamation Roadmap
- 48:22Cohort Interface (preliminary)
related talks
01h 01mSmarter Cpp Atomic Smart Pointers - Efficient Concurrent Memory Management
01h 02mLock-free Atomic Shared Pointers Without a Split Reference Count? It Can Be Done!
20mTaking out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static Analyses
17mEfficient Dependency Resolution in IFC-aware Decentralized Programming
50mLet’s refresh our memory! Memory management in .NET.
39mSafety first
52mIs there anybody out there?
01h 02mModern C++ Safety and Security At 20
