Lock-Free Programming (or, Juggling Razor Blades), Part II
summary
Shows how to implement a lock‑free singly linked list using C++ atomics and smart pointers with concrete code, not high‑level handwaving: uses compare_exchange_weak loops, outlines the atomic shared_ptr idea and a translation to today's non‑member atomic_load/compare_exchange functions, explains ABA, hazard‑pointer and GC alternatives, and proves linearizability. Includes measured throughput and scaling effects (multi‑core tests showing multi× improvements after three concrete optimizations) and provides links to slides and source for copy‑pasteable examples.
AI-written summary · about
chapters (4)
related talks
39mLive Lock-Free or Deadlock (Practical Lock-free Programming)
01h 30mLive Lock-Free or Deadlock (Practical Lock-free Programming)
01h 03mSafety: off --- How not to shoot yourself in the foot with C++ atomics
01h 32mLock-free programming with modern C++
01h 00mConcurrency in C++20: A Deep Dive
53mAtomics, Locks, and Tasks (part 1 of 2)
01h 38mLock-free Programming is Dead - Long Live Lock-free Programming!
55m“A lock-free concurrency toolkit for deferred reclamation and optimistic speculation"
