Asynchrony and Coroutines
Practice shows that the usage of the callback based approach to asynchronous programming is usually uncomfortable. To simplify the writing and supporting a complex asynchronous code you can use a different approach - using coroutines. It significantly reduces the size and complexity of the source code. The code itself looks like synchronous invocations while internally it uses asynchronous scheduling. The approach allows to implement nonblocking primitives including nonblocking mutexes, transfer execution context between threads, nonblocking scatter-gather algorithms and nonblocking network operations.
Speaker: Grigory Demchenko
Slides: Asynchrony and Coroutines