~/talk

Powerful Data Processing Pipelines with C++20 Coroutines

Talkat ACCU 2022 · 2022-04-06..04-09· [c-and-cpp, concurrency]
slides:none on file

Shows a concrete pipeline implementation: file source -> zlib deflate filter -> sink using C++20 coroutines, ring buffers and a simple acquire/commit API. Includes a threaded version (mutex + condition_variable) and a coroutine single-threaded version that uses symmetric transfer (await_suspend returns a coroutine handle) to swap stages without a global scheduler. Slides contain runnable but non-production code and examples of surprising wins: symmetric transfer makes cooperative, per-stage scheduling trivial.

AI-written summary · about

  1. 0:00Start
  2. 0:10About me - Andreas Weis (he/him)
  3. 1:37Motivation - Design Goals
  4. 2:31Overview
  5. 3:16Warning! Dangerous slide code ahead!
  6. 3:41Anatomy of a pipeline
  7. 4:52A universal interface for processing steps
  8. 5:58The zlib interface
  9. 6:41C++ filter interface
  10. 8:14Example: File Source
  11. 9:36Example: Identity Filter
  12. 10:45Example: Deflate Filter
  13. 14:12Connecting multiple stages through buffers
  14. 17:06Acquired Buffer Interface
  15. 18:37Connecting steps with buffers
  16. 27:54Thread safe Ring Buffer access
  17. 33:28Recap: Control Flow
  18. 35:23Coroutine Basics - User View
  19. 36:10Coroutine Basics - Asynchronous computation
  20. 39:06Coroutine Basics - Suspend/resume
  21. 41:16Participants in coroutine execution
  22. 42:18Return object
  23. 44:59Promise Type
  24. 47:45Awaitable
  25. 49:10Minimum boilerplate
  26. 52:39Suspension
  27. 54:14Making acquainances
  28. 58:47Getting data out of a coroutine
~/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.