Easy senders/receivers

Lucian Radu Teodorescu

⏱ 90 minute session
beginner
intermediate
14:00-15:30, Tuesday, 1st April 2025
The P2300 std::execution proposal, informally known as senders/receivers, was formally incorporated into the C++26 working paper following the St. Louis meeting. While the proposal has existed for some time, many people still find the model challenging to use and difficult to teach.

This talk aims to demonstrate that senders and receivers are not as difficult to work with or teach as commonly perceived. Given the fundamental nature of the feature and the foundational areas it addresses, senders/receivers is actually an elegant proposal that may prove easier to use than suggested. This, however, requires the user to understand a few key concepts regarding senders.

We aim to clarify these key ideas, enabling the audience to β€œthink” in terms of senders. We introduce senders/receivers in a gentle manner, using examples and analogies, gradually building complexity until we cover essential aspects of senders/receivers. By the end, we hope the audience will feel comfortable experimenting with senders/receivers. In addition to the primary P2300 proposal, we also intend to discuss related proposals that contribute to a robust ecosystem for asynchrony in the C++ standard.

🏷 C++ standard
🏷 concurrency
🏷 parallelism
🏷 tutorial

Lucian Radu Teodorescu

Lucian Radu Teodorescu has a PhD in programming languages and is a Staff Engineer at Garmin. He likes challenges; and understanding the essence of things (if there is one) constitutes the biggest challenge of all.