Aaron is a senior staff software engineer who has been at Google since 2008. He has worked on several large storage systems, and is particularly interested in async programming in C++. Outside of work he holds a private pilot license with aerobatics and spinning endorsements, and enjoys turning light airplanes upside down.
Google is now using C++ coroutines to process billions of requests per second. This talk presents trade-offs and novel choices made in developing our coroutines library, and integrating it into the Google production environment. The talk covers both performance and semantic questions that affect usability and software engineering at scale. Topics include: The importance of mandatory support for cancellation. Library and compiler support making it feasible to safely accept reference parameters in coroutines. The benefits and limitations of structured concurrency APIs. Unifying deadlines and cancellation. Stack-efficient async programming, including techniques for stack-efficient cancellation, and where the language is still missing features. Trade-offs between API usability and […]