-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
process: expose AW::poll_write_vectored on unix #5216
Conversation
ff0d71a
to
9c88def
Compare
Quite unsure how to test this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
Co-authored-by: Alice Ryhl <[email protected]>
d7be7c6
to
fca1ac6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok looks good to me.
Post merge CI failure seems unrelated: https://github.com/tokio-rs/tokio/actions/runs/3515029698/jobs/5889784158#step:4:1200 |
Yes, that seems to be due to a flaky test. I believe it is related to #5207.
on |
- net: fix Windows named pipe connect ([#5208]) - io: support vectored writes for `ChildStdin` ([#5216]) - io: fix `async fn ready()` false positive for OS-specific events ([#5231]) ### Changed - runtime: `yield_now` defers task until after driver poll ([#5223]) - runtime: reduce amount of codegen needed per spawned task ([#5213]) - windows: replace `winapi` dependency with `windows-sys` ([#5204]) [#5208]: #5208 [#5216]: #5216 [#5213]: #5213 [#5204]: #5204 [#5223]: #5223 [#5231]: #5231
### Fixed - net: fix Windows named pipe connect ([#5208]) - io: support vectored writes for `ChildStdin` ([#5216]) - io: fix `async fn ready()` false positive for OS-specific events ([#5231]) ### Changed - runtime: `yield_now` defers task until after driver poll ([#5223]) - runtime: reduce amount of codegen needed per spawned task ([#5213]) - windows: replace `winapi` dependency with `windows-sys` ([#5204]) [#5208]: #5208 [#5216]: #5216 [#5213]: #5213 [#5204]: #5204 [#5223]: #5223 [#5231]: #5231
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [tokio](https://tokio.rs) ([source](https://github.com/tokio-rs/tokio)) | dependencies | minor | `1.22.0` -> `1.23.0` | | [tokio](https://tokio.rs) ([source](https://github.com/tokio-rs/tokio)) | dev-dependencies | minor | `1.22.0` -> `1.23.0` | --- ### Release Notes <details> <summary>tokio-rs/tokio</summary> ### [`v1.23.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.23.0): Tokio v1.23.0 [Compare Source](tokio-rs/tokio@tokio-1.22.0...tokio-1.23.0) ##### Fixed - net: fix Windows named pipe connect ([#​5208]) - io: support vectored writes for `ChildStdin` ([#​5216]) - io: fix `async fn ready()` false positive for OS-specific events ([#​5231]) ##### Changed - runtime: `yield_now` defers task until after driver poll ([#​5223]) - runtime: reduce amount of codegen needed per spawned task ([#​5213]) - windows: replace `winapi` dependency with `windows-sys` ([#​5204]) [#​5208]: tokio-rs/tokio#5208 [#​5216]: tokio-rs/tokio#5216 [#​5213]: tokio-rs/tokio#5213 [#​5204]: tokio-rs/tokio#5204 [#​5223]: tokio-rs/tokio#5223 [#​5231]: tokio-rs/tokio#5231 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC43MC4wIiwidXBkYXRlZEluVmVyIjoiMzQuNzAuMCJ9--> Co-authored-by: cabr2-bot <[email protected]> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1687 Reviewed-by: crapStone <[email protected]> Co-authored-by: Calciumdibromid Bot <[email protected]> Co-committed-by: Calciumdibromid Bot <[email protected]>
Motivation
For inter-process communication over stdin and stdout it would be helpful to use vectored writes.
Solution
Expose already existing vectored facilities in
tokio::io::PollEvented
on theAsyncWrite
implementation oftokio::process::ChildStdin
by providing a forwarding implementation instead of using the default non-vectoring implementation.Adjusts the
tokio::io::PollEvented
vectored writes support to be enabled onfeature = "process"
.