![C++ coroutines: Allowing the awaiter to be destroyed while suspended](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
![C++ coroutines: Allowing the awaiter to be destroyed while suspended](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
![C++ coroutines: Getting rid of our reference count](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
C++ coroutines: Getting rid of our reference count
![C++ coroutines: Getting rid of our mutex](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
C++ coroutines: Getting rid of our mutex
![Pivot points and financial numerology](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
Pivot points and financial numerology
![C++ coroutines: Making it impossible to co_await a task twice](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
C++ coroutines: Making it impossible to co_await a task twice
co_await
consume the task.![C++ coroutines: Tradeoffs of making the promise be the shared state](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
C++ coroutines: Tradeoffs of making the promise be the shared state
![C++ coroutines: The lifetime of objects involved in the coroutine function](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
C++ coroutines: The lifetime of objects involved in the coroutine function
![C++ coroutines: Managing the reference count of the coroutine state](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
C++ coroutines: Managing the reference count of the coroutine state
![C++ coroutines: Awaiting the simple_task](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)
C++ coroutines: Awaiting the simple_task
![C++ coroutines: Accepting types via return_void and return_value](https://web.archive.org/web/20210419161816/https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg)