Entries by Rainer Grimm

An Advanced Priority Scheduler for Coroutines

Today, I use the straightforward scheduler from the post “A Priority Scheduler for Coroutines” and improve its priority handling. This is the fourth post in my miniseries about schedulers for C++ coroutines. The first two posts were guest posts by Dian-Lun Lin: Dian-Lun’s schedulers were based on the container adaptor std::stack and std::queue. The std::stack […]

A Priority Scheduler for Coroutines

In this post, I will extend the straightforward scheduler from Dian-Lun with priorities. This is the third post in my mini-series about schedulers for C++ coroutines. The first two posts were guest posts by Dian-Lun Lin: Dian-Lun’s schedulers were based on the container adaptor std::stack and std::queue. The std::stack schedules its tasks according to its […]

Coroutines: A Scheduler for Tasks by Dian-Lun Lin

The last post “A Concise Introduction to Coroutines by Dian-Lun Lin” provide the theory. Today, Dian-Lun presents his single-threaded scheduler for C++ coroutines. This post assumes you are familiar with the previous post “A Concise Introduction to Coroutines by Dian-Lun Lin“. A Single-threaded Scheduler for C++ Coroutines In this section, I implement a single-threaded scheduler […]

Thank You for Your Support: 1/n

After I wrote about my ALS illness in my post “My very Serious Progressive Nerve Condition“, I decided to make all 2 – 3 weeks a short update about my condition. I want to do this for a few reasons. I recognized that the most important part of fighting such a depressing illness is to […]

A Concise Introduction to Coroutines by Dian-Lun Lin

Today, I will start a miniseries about a scheduler for tasks. The starting point of this miniseries is a straightforward scheduler by Dian-Lun Lin that becomes increasingly sophisticated. I have already written around 15 posts about coroutines. They explain the theory about coroutines and apply this theory in various ways. However, I still fight for […]

The Ranges Library in C++20: More Design Choices

The ranges library in C++20 made due to performance reasons a few unique design choices. These choices have consequences: cache issues and constness issues. Here is a short reminder. In my last post, “The Ranges Libray in C++20: Design Choices“, I presented this possible implementation of std::ranges::filter_view: if constexpr (!ranges::forward_range<V>) return /* iterator */{*this, ranges::find_if(base_, […]

The Ranges Library in C++20: Design Choices

Thanks to the ranges library, working with the Standard Template Library (STL) is much more comfortable and powerful. First of all, the algorithms of the ranges library are lazy, can work directly on the container, and can be composed. Additionally, the ranges library made a few unique design choices, you must know. Before I dive […]

My very Serious Progressive Nerve Condition

I am sorry to inform you that I have ALS, a very serious progressive nerve condition. Therefore, I am unsure how long I can continue this blog. Currently, I can only travel to trainings or conferences with the help of my wife. We (my family and I) have decided to deal aggressively with this challenge. […]

C++20: More Details about Module Support of the Big Three

In my last post, “C++20: Module Support of the Big Three“, I compiled a simple module with the Big Three. Today, I drill deeper using the GCC, Clang, and Microsoft Compiler. Honestly, this post will be pretty technical and end with a curious note. Additionally, it requires basic modules knowledge. If you don’t have it, […]

C++20: Module Support of the Big Three

I have written almost 100 posts about C++20 in the last four years, but I’m not done. This post continues my story about C++20. Modules are one of the Big Four in C++20. In my C++20 classes, they are one of the main topics. Sadly, the implementation in GCC and Clang was way behind the […]