Channel runtime delivery semantics
Platform spec ADR
Channel runtime delivery semantics
Spec standingStandard
- Concurrency package - Contracts and edge cases Send, Receive, Join, Cancel, and Hub normative contracts.
- Concurrency package - Decisions record (legacy index) Migration index pointing to per-decision ADR files under adr/—normative text lives in ADRs, not this page.
- Concurrency package - Design model Package layout, module map, and thin-wrapper rule for Fiber and Channel structs.
- Concurrency package - Examples Illustrative spawn, Channel, and Hub usage (informative).
0 revisions (git unavailable at build; counts may be empty)
No commits recorded for this path.
| Section id | Required | Found |
|---|---|---|
what-this-feature-specifies | yes | yes |
implementation-anchors | yes | yes |
Full tree: run pnpm verify:platform-spec-layout (writes src/generated/platform-spec-layout-report.json).
Context
Section titled “Context”Authors need defined fan-in/fan-out and close idempotence.
Decision
Section titled “Decision”| Rule | Detail |
|---|---|
| Receivers | Multiple allowed; each message delivered to exactly one successful Receive (FIFO) |
| Senders | Multiple allowed unless SingleWriter hint (hint only v1) |
| Close | Any handle holder may Close; idempotent writer shutdown |
| void spawn | `Fiber<Unit>` when entry returns no value |
Consequences
Section titled “Consequences”Close after drain returns ChannelError::Closed in Result.
Verification anchors
Section titled “Verification anchors”Runtime concurrency.rs; corelib channel tests.