Skip to content

RFC: add poll_progress to AsyncIterator - #4020

Open
oconnor663 wants to merge 2 commits into
rust-lang:mainfrom
oconnor663:poll_progress_squashed
Open

oconnor663 wants to merge 2 commits into
rust-lang:mainfrom
oconnor663:poll_progress_squashed

Conversation

@oconnor663

@oconnor663 oconnor663 commented Oct 19, 2026 •

Copy link
Copy Markdown

Fix "Barbara battles buffered streams" and iterator variants of "Futurelock" by adding poll_progress to AsyncIterator. Define a strict AsyncIterator contract for when poll_next and poll_progress should be called, mirroring the strict Future contract in RFC #4019.

To avoid burying the lede: Effectively deprecating StreamExt::next will probably be the most controversial part of this RFC. See "What about .next()?" in the Drawbacks section.

Important

Since RFCs involve many conversations at once that can be difficult to follow, please use review comment threads on the text changes instead of direct comments on the RFC.

If you don't have a particular section of the RFC to comment on, you can click on the "Comment on this file" button on the top-right corner of the diff, to the right of the "Viewed" checkbox. This will create a separate thread even if others have commented on the file too.

Rendered

Fix ["Barbara battles buffered streams"] and iterator variants of
["Futurelock"] by adding `poll_progress` to `AsyncIterator`. Define a
strict `AsyncIterator` contract for when `poll_next` and `poll_progress`
should be called, mirroring the strict `Future` contract in RFC TODO.

To avoid burying the lede: Effectively deprecating [`StreamExt::next`]
will probably be the most controversial part of this RFC. See "What
about `.next()`?" in the Drawbacks section.

["Barbara battles buffered streams"]: https://rust-lang.github.io/wg-async/vision/submitted_stories/status_quo/barbara_battles_buffered_streams.html
["Futurelock"]: https://rfd.shared.oxide.computer/rfd/0609
[`StreamExt::next`]: https://docs.rs/futures/latest/futures/stream/trait.StreamExt.html#method.next

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant