
Implementing Simple Futures with Coroutines
/
0 Comments
Instead of return, a coroutine uses co_return returning its result. In this post, I want to implement…

Synchronized Output Streams with C++20
What happens when you write without synchronization to std::cout? You get a mess. With C++20, this should…

The Five (Seven) Winners of my C++20 book are:
Last week, I launched a quiz. The price was it to win one of the five vouchers for my book "C++20".
The…

An Improved Thread with C++20
std::jthread stands for joining thread. In addition to std::thread (C++11), std::jthread automatically…

Resolving C/C++ Concurrency Bugs More Efficiently with Time Travel Debugging
I'm happy to announce a guest post about Time Travel Debugging with UDB. At the end of the post, I…

Cooperative Interruption of a Thread in C++20
A typical question in my C++ seminars is: Can a thread be killed? Before C++20, my answer is no. With…

Barriers and Atomic Smart Pointers in C++20
In my last post, I introduced latches in C++20. A latch enables its threads to wait until a counter becomes…

Latches in C++20
Latches and barriers are coordination types that enable some threads to wait until a counter becomes…

Semaphores in C++20
Semaphores are a synchronization mechanism used to control concurrent access to a shared resource. They…

And the Winners are:
Last week, I launched a quiz. The price was it to win one of the five vouchers for the book "The…

Five Vouchers to win for my book “C++20”
I give away five vouchers for my book "C++20". In return, I have a question about the Big Four: concepts,…

Performance Comparison of Condition Variables and Atomics in C++20
After the introduction to std::atomic_flag in my last post, Synchronization with Atomics in C++20, I…