The Networking TS from Scratch: I/O Objects
summary
Shows how to implement a baseline I/O object from the Networking TS by building an asynchronous condition variable called async_event, a type‑erasing movable pending wrapper (pending) that preserves associated allocator and executor guarantees, and a service to offload handler ownership and break cycles. Uses async_initiate, Boost.Asio/standalone Asio semantics and p0443 executor properties (including outstanding_work.tracked) to keep io contexts alive. Includes unit tests and example code on the linked GitHub proving the design works.
AI-written summary · about
chapters (28)
- 0:00Intro
- 1:45Status of Networking TS
- 4:03Asynchronous Operations
- 5:55Recap
- 8:30Sequence Diagram
- 10:40Baseline Layer
- 13:46Completion Handlers
- 14:38Invocable Objects
- 15:27PendingUnary
- 21:10AsyncInitiate
- 24:07Completion Tokens
- 25:12Semantics
- 27:35Semantics with P0443
- 29:00Review
- 30:21Ownership Cycle
- 31:42Service
- 32:17Service Definition
- 33:35Service Ownership
- 35:42Service Functions
- 37:09Service Type
- 38:54Service Member
- 42:39Execution Context
- 43:46Run Functions
- 44:51executor
- 46:46IO executor
- 49:27Prefer not require
- 52:55Summary
- 55:09Questions
related talks
58mThe Networking TS in Practice: Testable, Composable Asynchronous I/O in C++
59mThe Networking TS in Practice: Patterns for Real World Problems
01h 01mPractical Patterns with the Networking TS
01h 01mAsynchronous IO with Boost.Asio
57mStructured Networking in C++
01h 01mStructured Networking
01h 04mNaked coroutines live (with networking)
22mEvent driven networking for Swift
