-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Make client able to use non-Send executor #3017
Labels
A-client
Area: client.
B-breaking-change
Blocked: this is an "API breaking change".
C-feature
Category: feature. This is adding a new feature.
E-hard
Effort: hard. Likely requires a deeper understanding of how hyper's internals work.
Milestone
Comments
seanmonstar
added
A-client
Area: client.
C-feature
Category: feature. This is adding a new feature.
E-medium
Effort: medium. Some knowledge of how hyper internal works would be useful.
B-breaking-change
Blocked: this is an "API breaking change".
labels
Oct 20, 2022
I will try to implement this. |
seanmonstar
added
E-hard
Effort: hard. Likely requires a deeper understanding of how hyper's internals work.
and removed
E-medium
Effort: medium. Some knowledge of how hyper internal works would be useful.
labels
May 1, 2023
seanmonstar
pushed a commit
that referenced
this issue
Jun 29, 2023
Closes #3017 BREAKING CHANGE: `client::conn::http2` types now use another generic for an `Executor`. Code that names `Connection` needs to include the additional generic parameter.
mmastrac
added a commit
to denoland/deno
that referenced
this issue
Jul 31, 2023
Includes a lightly-modified version of hyper-util's `TokioIo` utility. Hyper changes: v1.0.0-rc.4 (2023-07-10) Bug Fixes http1: http1 server graceful shutdown fix (#3261) ([f4b51300](hyperium/hyper@f4b5130)) send error on Incoming body when connection errors (#3256) ([52f19259](hyperium/hyper@52f1925), closes hyperium/hyper#3253) properly end chunked bodies when it was known to be empty (#3254) ([fec64cf0](hyperium/hyper@fec64cf), closes hyperium/hyper#3252) Features client: Make clients able to use non-Send executor (#3184) ([d977f209](hyperium/hyper@d977f20), closes hyperium/hyper#3017) rt: replace IO traits with hyper::rt ones (#3230) ([f9f65b7a](hyperium/hyper@f9f65b7), closes hyperium/hyper#3110) add downcast on Sleep trait (#3125) ([d92d3917](hyperium/hyper@d92d391), closes hyperium/hyper#3027) service: change Service::call to take &self (#3223) ([d894439e](hyperium/hyper@d894439), closes hyperium/hyper#3040) Breaking Changes Any IO transport type provided must not implement hyper::rt::{Read, Write} instead of tokio::io traits. You can grab a helper type from hyper-util to wrap Tokio types, or implement the traits yourself, if it's a custom type. ([f9f65b7a](hyperium/hyper@f9f65b7)) client::conn::http2 types now use another generic for an Executor. Code that names Connection needs to include the additional generic parameter. ([d977f209](hyperium/hyper@d977f20)) The Service::call function no longer takes a mutable reference to self. The FnMut trait bound on the service::util::service_fn function and the trait bound on the impl for the ServiceFn struct were changed from FnMut to Fn.
0xE282B0
pushed a commit
to 0xE282B0/hyper
that referenced
this issue
Jan 12, 2024
Closes hyperium#3017 BREAKING CHANGE: `client::conn::http2` types now use another generic for an `Executor`. Code that names `Connection` needs to include the additional generic parameter.
0xE282B0
pushed a commit
to 0xE282B0/hyper
that referenced
this issue
Jan 16, 2024
Closes hyperium#3017 BREAKING CHANGE: `client::conn::http2` types now use another generic for an `Executor`. Code that names `Connection` needs to include the additional generic parameter. Signed-off-by: Sven Pfennig <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-client
Area: client.
B-breaking-change
Blocked: this is an "API breaking change".
C-feature
Category: feature. This is adding a new feature.
E-hard
Effort: hard. Likely requires a deeper understanding of how hyper's internals work.
This likely needs to be done before 1.0, because I suspect it involves adding a generic to a few types. But it's likely too late to fit into RC1.
The client code currently spawns a couple tasks for a connection, but does so by requiring the
Executor<Box<dyn Future + Send>>
, so we can spawn multiple. We can't make the internal type public, but we need to propagate theSend
bounds of the IO and body types. So, we should change it to have bounds similar to theserver::conn::http2
, essentially an extension trait that meansE: Executor<InternalFutureType<IO, B>>
.A way we can tell this all works is that we should be able to augment the single-threaded example file with a client as well.
Other relevant issues: #2341
The text was updated successfully, but these errors were encountered: