Anatomy of asynchronous engines


In the last years, asynchronous engines with coroutines are gaining popularity in almost all programming languages.

Let's look at how these engines work and what's good about them for I/O-bound applications. We'll look at how people live before modern coroutines, consider basic components of the asynchronous engine, and dive into the wonderful world of engine optimizations and tricks.

You will learn from this talk about:

  • using the stack as heap storage;
  • mutexes that don't block threads;
  • timers and generations;
  • cancellations.