Using Race Conditions in Correct Concurrent Software
summary
Claims that intentionally exploited races plus atomic primitives yield faster, more predictable concurrency instead of only bugs. Implements a micro slab shared allocator in C using the Concurrency Kit and CPU atomics like compare-and-swap, fixes the ABA problem with a generation counter and double-width CAS, and measures throughput/latency. Locking spinlocks lose throughput by orders of magnitude under contention and show huge tail latency, while the lock‑free allocator scales near‑linearly and produces two orders of magnitude tighter latency variation, so the thing actually works.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 1:07The Problem
- 2:47Slab Allocators
- 8:32C Implementation
- 12:19Linearize Ability
- 14:38Linearization Point
- 22:58Compare and Swap
- 27:33The ABA Problem
- 31:58Latency Plots
- 35:55Conclusion
related talks
01h 02mBack to Basics: Concurrency
01h 02mConcurrency Patterns
05mLightning Talk: Micro C++ Benchmarks & Murphy's Law
24mShared Memory & Parallel Programming with JavaScript
01h 08mLocal (Arena) Allocators Part II
27m“From security to performance to GPU programming..."
51mUnderstanding Allocator Impact on Runtime Performance in C++
01h 29mWhen Nanoseconds Matter: Ultrafast Trading Systems in C++
