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…

My Next Mentoring Program: “Generic Programming (Templates) with C++” starts

/
My next mentoring program, "Embedded Programming with Modern C++," starts on January 31st. Registration…

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…

std::format Extension

Displaying the address of an arbitrary pointer in C++ 20 fails but succeeds with C++26. C++20 Only…