Posts


Automatically Resuming a Job with Coroutines on a Separate Thread
In my last post "Starting Jobs with Coroutines", I applied co_await to start a job. In this post, I improve…

Starting Jobs with Coroutines
C++20 has three new keywords to make a coroutine out of a function: co_return, co_yield, and co_await.…

A Generic Data Stream with Coroutines in C++20
In my last post in this mini-series on coroutines from the practical perspective, I presented the workflow…

An Infinite Data Stream with Coroutines in C++20
In this post, I analyze the new keyword co_yield. Thanks to co_yield, you can create an infinite data…

Executing a Future in a Separate Thread with Coroutines
This post concludes my posts about co_return in C++20. I started with an eager future, and continued…

Lazy Futures with Coroutines
Based on the coroutines-based implementation of a simple future in my last post "Implementing Simple…

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

C++20: Thread Pools with cppcoro
This post is the third and final post in my miniseries to cppcoro. cppcoro is a library of coroutine…

C++20: Powerful Coroutines with cppcoro
I gave in my last post, "C++20: Coroutines with cppcoro", a basic introduction to the coroutines library…

C++20: Coroutines with cppcoro
The cppcoro library from Lewis Baker gives you what C++20 doesn't: a library of C++ coroutine abstractions…