~/talk

Asynchronous I/O and Coroutines for Smooth Data Streaming

Talkat ACCU 2022 · 2022-04-06..04-09· [linux-and-operating-systems]
slides:none on file

Linux io_uring (Linux 5.1) and C++20 coroutines are combined into a UDP-read pipeline that submits preallocated 1500‑byte buffers to the ring, receives packets with far fewer syscalls (about ~5k syscalls for 20k packets vs roughly two syscalls per packet with poll/epoll), converts span->string, concatenates into 40‑char lines and prints them. The prototype uses io_uring (Linux 5.1) and C++20 coroutines, demonstrably works, but requires ugly move‑only coroutine objects, manual lifetime management, poor cancellation support and a lot of boilerplate — pipeline worked but code is brittle.

AI-written summary · about

  1. 0:00Start
  2. 0:10Asynchronous I/O and coroutines for smooth data streaming
  3. 3:02Synchronous I/O with poll/read
  4. 25:56coroutine return object (task) cont.
  5. 30:19Making a computation pipeline
  6. 39:05pipeline as a value type
  7. 40:11Another level of indirection
  8. 42:39A little helper
  9. 46:13Feeding the pipeline from io_uring
  10. 51:41Takeaways
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.