Closing any subscriber set the shared `recv_ready` event, even when another receiver owned the source read. Waiting peers then looped until an idle source produced another value. Give each receiver private source-read and peer-wait cancellation scopes. Closing a waiting peer interrupts only that peer. Closing the source owner discards post-close source outcomes and then wakes peers for a clean ownership handoff. Keep outer task cancellation as `trio.Cancelled`; only explicit receiver close maps either private scope's cancellation to `ClosedResourceError`. Assert that scope cancellation implies the receiver is closed and document the source-owner key check. Prompt-IO: ai/prompt-io/opencode/20260812T150027Z_c2a6ccef_prompt_io.md (this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`)) |
||
|---|---|---|
| .. | ||
| claude | ||
| opencode | ||
| prompts | ||