Please rotate your tablet to be horizontal.

You can dismiss this notice but please note that this experience has not been designed for mobile devices and so will be less than optimal

Back To Schedule

Coroutines: C++ vs Rust

11:00 - 12:30 Friday 8th April 2022 BST

C++ and Rust are both system programming languages that recently received support for asynchronous programming using coroutines. Given the memory and time constraints, both languages opted for stackless coroutines implemented by a compiler-generated state machine. However, beyond that the designs are very different: in C++ the awaitables continue a coroutine from the bottom up, whereas in Rust a waker polls a future from the top down.

We'll figure out what this means by exploring how C++ and Rust coroutines work, what sets them apart, and what the trade-offs are. If you like programming language design, this talk is for you.

Jonathan Müller

Jonathan is a Computer Science graduate student. In his spare time he works on various C++ open-source libraries for memory allocation, cache-friendly containers or parsing. He also blogs about C++ and library development at foonathan.net.