Getting Started with Senders and Receivers

James Pascoe

⏱ 20 minute session
beginner
intermediate
advanced
14:25-14:45, Thursday, 3rd April 2025
The Sender / Receiver (std::execution) model is a framework for managing asynchronous execution on generic execution resources. Whilst there are several good introductions to Senders and Receivers, these tend to be complex technical 'deep-dives' which provide lots of low-level detail, but obscure the high-level concepts and make it difficult to relate Senders and Receivers to the other asynchronous abstractions in C++.

This talk provides a lightweight Sender / Receiver 'getting started' primer, which will introduce the key concepts (through code examples) and provide contextualisation in relation to other relevant Modern C++ abstractions, such as, coroutines and the on-going work in the Networking TS. The talk concludes by providing links to further resources and gives a look ahead to future work.

Source code for all of the examples will be available on GitHub, the intention being to provide the audience with a starting point for their own experiments.

🏷 c++26
🏷 senders
🏷 receivers
🏷 std::execution
🏷 asynchrony

James Pascoe

I love all things related to Modern C++. I also enjoy Linux Kernel coding, particularly in the area of networking, code optimisation and low-level development.

I am an embedded programmer who has worked for Blu Wireless, Intel, STMicroelectronics and U4EA Technologies.