~/talk

Lock-free Atomic Shared Pointers Without a Split Reference Count? It Can Be Done!

Talkat CppCon 2023 · on Tuesday, 2023-10-03· at 14:00· Maple 3/4/5, 6700 North Gaylord Rockies Boulevard· [security]
links:none on file
slides:none on file

Claim: implement lock-free atomic shared pointers without a split reference count by replacing delete with hazard pointers and deferred reclamation. Repository and slide code exist; implementation is nearly-standard C++ and uses standard shared_ptr increment-if-not-zero. Benchmarks show the hazard-pointer version wins when data is hot in cache, Folly wins on cold/cross-socket access, and major stdlibs currently provide non-lock-free atomic shared_ptrs, so this alternative is practical and performant.

AI-written summary · about

  1. 0:00Introduction
  2. 1:06Atomic shared pointers
  3. 3:54Lock-free algorithms
  4. 5:18Shared pointers memory
  5. 8:52Thread safety issues
  6. 9:53Benefits of atomic shared pointers
  7. 11:42Hard to implement lock-free
  8. 15:34Split reference count
  9. 18:26Split reference counting
  10. 20:08Load operation pseudocode
  11. 23:18Store operation race-to-zero
  12. 26:3116-byte atomics implementation
  13. 29:42Limitations of split reference count
  14. 31:50Deferred reclamation primer
  15. 35:28Atomic shared pointers with deferred reclamation
  16. 38:39Load operation with hazard pointers
  17. 41:51Store operation and retirement
  18. 44:40Hazard pointer simplicity
  19. 45:25Benchmarking concurrent stacks
  20. 55:10Implementation and future work
  21. 56:35Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.