rust-lang / futures-rs

Zero-cost asynchronous programming in Rust
https://rust-lang.github.io/futures-rs/
Apache License 2.0
5.29k stars 607 forks source link

Consider removing ArcWake, re-export std::task::Wake #2828

Closed ebkalderon closed 4 months ago

ebkalderon commented 4 months ago

The futures-task crate currently defines its own ArcWake trait, but according to #2207, the intention was always to replace it with the equivalent std::task::Wake trait as soon as that got stabilized.

However, it seems that std::task::Wake was stabilized in Rust 1.51, and the MSRV of both the futures-task and futures crates currently sit at 1.56, thanks to these three PRs from around March 2023:

As such, I think it should be safe to finally remove futures::task::ArcWake and simply re-export std::task::Wake in its place, possibly renamed ArcWake to maintain backwards compatibility.

Please feel free to correct me and/or close this issue if there's any context I'm missing!

taiki-e commented 4 months ago

Unfortunately they stabilized the API with different default methods, so we can't do this in 0.3. For 0.4 there is a pinned issue mentioning this and an open PR included in the milestone.

ebkalderon commented 4 months ago

Ah, that makes sense. Thanks for chiming in, @taiki-e!

EDIT: Found the PR! It seems to be: #2494

taiki-e commented 4 months ago

Closing in favor of existing issue/pr.