~/talk

Sockets - Applying the Unix Readiness Model When Composing Concurrent Operations in C++

Talkat CppCon 2022 · 2022-09-11..09-16· [rust]
links:none on file
slides:none on file

Claim: the Unix readiness model is practical to compose concurrent C++ operations by making senders and awaitables look like sockets. Implements a select-equivalent C++ library with epoll-style registration, intrusive circular linked lists for subscriptions, and notify objects that wake waiting callers. Demonstrates a real 250ms happy eyeballs delay example and FD-passing cancellation via a Unix domain socket. The code maps to senders/receivers and coroutines, is implemented end-to-end, and the approach works with the expected runtime tradeoffs.

AI-written summary · about

  1. 0:00Introduction
  2. 0:41Concurrent code structure
  3. 5:16Sockets basics
  4. 9:53Busy waiting vs select
  5. 13:45Unix readiness model
  6. 14:10Happy Eyeballs algorithm
  7. 17:41Happy Eyeballs with epoll
  8. 21:10C++ socket abstractions
  9. 24:45Waiting vs non-waiting code
  10. 25:06Unix pipes as sockets
  11. 28:13Non-blocking pipes in C++
  12. 30:00Select for multiple handles
  13. 32:50Intrusive lists for events
  14. 37:44Select object implementation
  15. 41:37Select operations
  16. 46:12Select for data spans
  17. 47:36Handles for objects
  18. 48:19Connecting senders and receivers
  19. 50:44Wait for any vs when any
  20. 51:48Select as a sender
  21. 53:56Summary
~/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.