You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
docs: address the remaining mailing-list review feedback #353
Source: Boost review result (conditional acceptance), Boost mailing list, September 2026. The linked message is "Some thoughts on Corosio" (July 2026).
Items from that message not already tracked in #324:
Dark mode: black text on dark-blue background is hard to read
UDP tutorial understates IP fragmentation: fragmented datagrams may be silently discarded (IPv4 practical limit as low as 576 bytes), so oversized datagrams are a correctness hazard, not just a performance note
Doc examples pervasively pass coroutine arguments by reference/string_view; establish and apply a safe-arguments convention for examples
"Opening and Closing TCP Connections" draws the branching TCP close sequence as a linear list
Document executor affinity (class-level thread safety is documented; affinity is not)
Document the rationale for io_context combining I/O waiting with coroutine execution
Hash Server tutorial: compute_fnv1a should be a plain function, not a coroutine
Hash Server tutorial: compute_fnv1a should be a plain function, not a coroutine
capy::run(ex)(...) only accepts a task, so to run the hash on the thread pool something still has to be a coroutine. I see two ways to make compute_fnv1a a plain function in hash_server.cpp:
I lean towards 2, which is the "extra lambda" the review mentions: it keeps a single reusable plain function and shows the executor switch at the call site. The arguments are passed as parameters rather than captured, in line with the review's point about references in coroutines; data stays valid because do_session is suspended until the hash completes. Which do you prefer?
Activity
TheLingeringWill commentedon Nov 4, 2026
I’d like to work on this, happy to take it. (Can’t be assigned yet since I’m not in the org.)
TheLingeringWill commentedon Nov 4, 2026
@sgerbino About this item:
capy::run(ex)(...)only accepts a task, so to run the hash on the thread pool something still has to be a coroutine. I see two ways to makecompute_fnv1aa plain function inhash_server.cpp:do_session, the same pattern capy uses intest/unit/ex/run.cpp:I lean towards 2, which is the "extra lambda" the review mentions: it keeps a single reusable plain function and shows the executor switch at the call site. The arguments are passed as parameters rather than captured, in line with the review's point about references in coroutines;
datastays valid becausedo_sessionis suspended until the hash completes. Which do you prefer?docs: keep the signals server example off a dead local
docs: let the acceptor example's accept loop own its acceptor
docs: say a started task's early reads can dangle too
docs: say the Hash Server session stays suspended during the hash
docs: drop "symmetric transfer" from the io_context rationale
Revert "docs: make description-list terms readable in dark mode"
12 remaining items
docs: fix the examples and wording the PR review flagged
docs: correct the resume wording and other points the PR review flagged
docs: draw the TCP connection figures with Mermaid
docs: warn that fragmented UDP datagrams may never arrive
docs: pass started coroutines what they read by value
docs: show the two ways a TCP connection closes
docs: state which executor resumes an awaiting coroutine
docs: explain why io_context also runs coroutines
docs: make the Hash Server's compute_fnv1a a plain function
docs: fix the examples and wording the PR review flagged
docs: correct the resume wording and other points the PR review flagged
docs: draw the TCP connection figures with Mermaid
sgerbino commentedon Nov 9, 2026
Resolved by #412