Lecture: co_await All The Things!
With coroutines being readily available and supported in all mainstream compiler implementations, more use cases than simple generators and tasks are entirely within reach. As any operation which may use I/O or execute on a different context is effectively asynchronous, the question then becomes whether all of these should be co_awaited. Of course, the implication is that essentially everything which isn't just a computation should then be co_awaited.
This presentation discusses some experiments of making things optionally asynchronous. It talks about the design choices encountered, some of the implementation details, and some performance results when making implementations optionally asynchronous.
The presentation is targeted at experienced C++ developers.
Dietmar Kühl is a senior software developer at Bloomberg L.P. working on the data distribution environment used both internally and
by enterprise installations at clients. Before joining Bloomberg he has done mainly consulting for software projects in the finance area. He is a regular attendee of the ANSI/ISO C++standards committee, presents at conferences, and he used to be a moderator of the newsgroup comp.lang.c++.moderated. He frequently answers questions on Stackoverflow.