Implementing Hazard Pointers in Rust (part 2)
Channel: Jon Gjengset
Date: 2021-07-10

We continue our journey implementing Hazard Pointers (https://erdani.org/publications/cuj-2004-12.pdf) in Rust. We follow along with the C++ implementation in Facebook's Folly library (https://github.com/facebook/folly/blob/master/folly/synchronization/Hazptr.h), starting from where we left off last time: https://github.com/jonhoo/haphazard/tree/7f0d8d62e071f8bc55233a3d2437225d6282e368



0:00:00 Introduction
0:01:50 Where we left off
0:05:50 PRs fixing problems from part 1
0:10:35 Update on issues we filed
0:20:37 Bugs I found
0:35:12 Can deleter alias be const?
0:38:35 impl Drop vs drop in vtable
0:40:25 Some Rust Q&A
0:43:20 Splitting up into modules
0:56:56 Support for custom domains
2:19:30 Improving static domain safety
2:58:04 Intermission
3:02:02 Aligning with Folly's HazPtrDomain
4:39:03 Aligning with Folly's HazPtrHolder
5:18:32 Aligning with Folly's HazPtrObject

5:25:10 Where we are and where next?


You can find the latest code for the implementation at https://github.com/jonhoo/haphazard.

Live version with chat: https://youtu.be/Hy8VfC2FwBM