tokio-1.44.0
tokio-rs/tokiotokio-1.44.0Mar 7, 2025by Darksonn
AI Summary
Introduced `task::coop` module and new channel methods. Changed `from_std` to panic on blocking sockets to prevent runtime hangs.
Key Highlights
- Added `task::coop` module
- Added `broadcast::Sender::closed` and `WeakSender`
- Added `oneshot::Receiver::is_empty` and `is_terminated`
- Panic on blocking sockets in `from_std` to prevent hangs
New Features
- task::coop module
- Command::get_kill_on_drop()
- broadcast::Sender::closed
- broadcast::WeakSender
- oneshot::Receiver::is_empty()
- oneshot::Receiver::is_terminated()
Full Release Notes
# 1.44.0 (March 7th, 2025) This release changes the `from_std` method on sockets to panic if a blocking socket is provided. We determined this change is not a breaking change as Tokio is not intended to operate using blocking sockets. Doing so results in runtime hangs and should be considered a bug. Accidentally passing a blocking socket to Tokio is one of the most common user mistakes. If this change causes an issue for you, please comment on [#7172]. ### Added - coop: add `task::coop` module ([#7116]) - process: add `Command::get_kill_on_drop()` ([#7086]) - sync: add `broadcast::Sender::closed` ([#6685], [#7090]) - sync: add `broadcast::WeakSender` ([#7100]) - sync: add `oneshot::Receiver::is_empty()` ([#7153]) - sync: add `oneshot::Receiver::is_terminated()` ([#7152]) ### Fixed - fs: empty reads on `File` should not start a background read ([#7139]) - process: calling `start_kill` on exited child should not fail ([#7160]) - signal: fix `CTRL_CLOSE`, `CTRL_LOGOFF`, `CTRL_SHUTDOWN` on windows ([#7122]) - sync: properly handle panic during mpsc drop ([#7094]) ### Changes - runtime: clean up magic number in registration set ([#7112]) - coop: make coop yield using waker defer strategy ([#7185]) - macros: make `select!` budget-aware ([#7164]) - net: panic when passing a blocking socket to `from_std` ([#7166]) - io: clean up buffer casts ([#7142]) ### Changes to unstable APIs - rt: add before and after task poll callbacks ([#7120]) - tracing: make the task tracing API unstable public ([#6972]) ### Documented - docs: fix nesting of sections in top-level docs ([#7159]) - fs: rename symlink and hardlink parameter names ([#7143]) - io: swap reader/writer in simplex doc test ([#7176]) - macros: docs about `select!` alternatives ([#7110]) - net: rename the argument for `send_to` ([#7146]) - process: add example for reading `Child` stdout ([#7141]) - process: clarify `Child::kill` behavior ([#7162]) - process: fix grammar of the `ChildStdin` struct doc comment ([#7192]) - runtime: consistently use `worker_threads` instead of `core_threads` ([#7186]) [#6685]: https://github.com/tokio-rs/tokio/pull/6685 [#6972]: https://github.com/tokio-rs/tokio/pull/6972 [#7086]: https://github.com/tokio-rs/tokio/pull/7086 [#7090]: https://github.com/tokio-rs/tokio/pull/7090 [#7094]: https://github.com/tokio-rs/tokio/pull/7094 [#7100]: https://github.com/tokio-rs/tokio/pull/7100 [#7110]: https://github.com/tokio-rs/tokio/pull/7110 [#7112]: https://github.com/tokio-rs/tokio/pull/7112 [#7116]: https://github.com/tokio-rs/tokio/pull/7116 [#7120]: https://github.com/tokio-rs/tokio/pull/7120 [#7122]: https://github.com/tokio-rs/tokio/pull/7122 [#7139]: https://github.com/tokio-rs/tokio/pull/7139 [#7141]: https://github.com/tokio-rs/tokio/pull/7141 [#7142]: https://github.com/tokio-rs/tokio/pull/7142 [#7143]: https://github.com/tokio-rs/tokio/pull/7143 [#7146]: https://github.com/tokio-rs/tokio/pull/7146 [#7152]: https://github.com/tokio-rs/tokio/pull/7152 [#7153]: https://github.com/tokio-rs/tokio/pull/7153 [#7159]: https://github.com/tokio-rs/tokio/pull/7159 [#7160]: https://github.com/tokio-rs/tokio/pull/7160 [#7162]: https://github.com/tokio-rs/tokio/pull/7162 [#7164]: https://github.com/tokio-rs/tokio/pull/7164 [#7166]: https://github.com/tokio-rs/tokio/pull/7166 [#7172]: https://github.com/tokio-rs/tokio/pull/7172 [#7176]: https://github.com/tokio-rs/tokio/pull/7176 [#7185]: https://github.com/tokio-rs/tokio/pull/7185 [#7186]: https://github.com/tokio-rs/tokio/pull/7186 [#7192]: https://github.com/tokio-rs/tokio/pull/7192