Read-copy-update (RCU)

Read-copy-update is strong in multithreading environments where a data structure is read almost exclusively…

Hazard Pointers in C++26

Hazard pointers provide garbage collection in C++ and solve the ABA problem. First of all. What…

A Lock-Free Stack: A Hazard Pointer Implementation Explained II

In my last post, I started to explain a hazard pointer implementation: A Lock-Free Stack: A Hazard Pointer…

A Lock-Free Stack: A Hazard Pointer Implementation Explained I

In my last post, I presented a hazard pointer implementation: A Lock-Free Stack: A Hazard Pointer Implementation.…

A Lock-Free Stack: A Hazard Pointer Implementation

Hazard Pointers solve all issues of the previous implementation: A Lock-Free Stack: A Simple Garbage…

A Lock-Free Stack: A Simple Garbage Collector

My next lock-free stack includes a simple garbage collector. I discussed the concurrent execution…

A Lock-Free Stack: Atomic Smart Pointer

The easiest way to solve this memory leak issue from the last post is to use a std::shared_ptr. Atomic…

A Lock-Free Stack: A Complete Implementation

My last lock-free stack implementation was incomplete. It only supported push operations. Let's change…

A Lock-Free Stack: A Simplified Implementation

Today, I continue my mini story about lock-free data structures. General Considerations From…

Deferred Reclamation in C++26: Read-Copy Update and Hazard Pointers

Before I dive into lock-free programming, there's a little bit of theory necessary. A common…