Async IO with epoll, io_uring, and C++ coroutines
- Introduction
- Project setup
- Errors
- File descriptors and sockets
- HTTP client interface and buffers
- Blocking HTTP client
- Epoll HTTP client
- io_uring
- io_uring HTTP client
- io_uring with "manual" state machine
- Coroutines
- io_uring event loop with coroutines
- HTTP client with io_uring and coroutines
- Combining coroutines
Introduction
Why does the C++ coroutine API look the way it does? This was the main question on my mind when I started the explorations documented in this post. Most C++ coroutine explanations focus on the mechanics of the API, the many customization points, and maybe a few examples. This post approaches C++ coroutines from one of its motivating use cases: concurrent IO with event loops. I find that it's much…
评论
?
参与讨论