Skip to content

stream: respect iter consumer abort signals#63997

Open
trivikr wants to merge 1 commit into
nodejs:mainfrom
trivikr:stream-iter-per-consumer-abort-signal-2
Open

stream: respect iter consumer abort signals#63997
trivikr wants to merge 1 commit into
nodejs:mainfrom
trivikr:stream-iter-per-consumer-abort-signal-2

Conversation

@trivikr

@trivikr trivikr commented Jun 19, 2026

Copy link
Copy Markdown
Member

Fixes: #63302

broadcast.push({ signal }) and share.pull({ signal }) ignored the
per-consumer AbortSignal on the raw fast path when no transforms were
provided. This left pending next() calls unresolved after the signal aborted.

This updates both paths to delegate to the existing pull() pipeline when a
per-consumer signal is present, preserving the raw fast path for calls without
signals.


Assisted-by: openai:gpt-5.5

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/streams

@nodejs-github-bot nodejs-github-bot added needs-ci PRs that need a full CI run. stream Issues and PRs related to the stream subsystem. labels Jun 19, 2026
Delegate broadcast.push() and share.pull() calls with per-consumer
AbortSignals through pull(), so pending next() calls reject when the
signal aborts.

Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com>
Assisted-by: openai:gpt-5.5
@trivikr trivikr force-pushed the stream-iter-per-consumer-abort-signal-2 branch from 3075177 to 60c0ec7 Compare June 19, 2026 06:44
@trivikr trivikr added the request-ci Add this label to start a Jenkins CI on a PR. label Jun 19, 2026
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Jun 19, 2026
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-ci PRs that need a full CI run. stream Issues and PRs related to the stream subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

stream/iter: per-consumer AbortSignal is ignored by broadcast.push() and share.pull() fast path

3 participants