tokio-1.46.0
tokio-rs/tokiotokio-1.46.0Jul 2, 2025by Darksonn
AI Summary
Tokio 1.46.0 includes fixes for TCP stream shutdown on macOS, support for Cygwin and Android, and new methods for `mpsc::OwnedPermit`.
Key Highlights
- Fixed `TcpStream::shutdown` error on macOS.
- Added `biased` option to `join!` and `try_join!` macros.
- Added support for Cygwin and Android file operations.
- Added `Clone` implementation for `net::unix::SocketAddr`.
New Features
- TCP stream shutdown fix
- Binary join macros
- Cygwin support
- Android support
- SocketAddr Clone implementation
Full Release Notes
# 1.46.0 (July 2nd, 2025)
### Fixed
- net: fixed `TcpStream::shutdown` incorrectly returning an error on macOS ([#7290])
## Added
- sync: `mpsc::OwnedPermit::{same_channel, same_channel_as_sender}` methods ([#7389])
- macros: `biased` option for `join!` and `try_join!`, similar to `select!` ([#7307])
- net: support for cygwin ([#7393])
- net: support `pope::OpenOptions::read_write` on Android ([#7426])
- net: add `Clone` implementation for `net::unix::SocketAddr` ([#7422])
## Changed
- runtime: eliminate unnecessary lfence while operating on `queue::Local<T>` ([#7340])
- task: disallow blocking in `LocalSet::{poll,drop}` ([#7372])
## Unstable
- runtime: add `TaskMeta::spawn_location` tracking where a task was spawned ([#7417])
- runtime: removed borrow from `LocalOptions` parameter to `runtime::Builder::build_local` ([#7346])
## Documented
- io: clarify behavior of seeking when `start_seek` is not used ([#7366])
- io: document cancellation safety of `AsyncWriteExt::flush` ([#7364])
- net: fix docs for `recv_buffer_size` method ([#7336])
- net: fix broken link of `RawFd` in `TcpSocket` docs ([#7416])
- net: update `AsRawFd` doc link to current Rust stdlib location ([#7429])
- readme: fix double period in reactor description ([#7363])
- runtime: add doc note that `on_*_task_poll` is unstable ([#7311])
- sync: update broadcast docs on allocation failure ([#7352])
- time: add a missing panic scenario of `time::advance` ([#7394])
[#7290]: https://github.com/tokio-rs/tokio/pull/7290
[#7307]: https://github.com/tokio-rs/tokio/pull/7307
[#7311]: https://github.com/tokio-rs/tokio/pull/7311
[#7336]: https://github.com/tokio-rs/tokio/pull/7336
[#7340]: https://github.com/tokio-rs/tokio/pull/7340
[#7346]: https://github.com/tokio-rs/tokio/pull/7346
[#7352]: https://github.com/tokio-rs/tokio/pull/7352
[#7363]: https://github.com/tokio-rs/tokio/pull/7363
[#7364]: https://github.com/tokio-rs/tokio/pull/7364
[#7366]: https://github.com/tokio-rs/tokio/pull/7366
[#7372]: https://github.com/tokio-rs/tokio/pull/7372
[#7389]: https://github.com/tokio-rs/tokio/pull/7389
[#7393]: https://github.com/tokio-rs/tokio/pull/7393
[#7394]: https://github.com/tokio-rs/tokio/pull/7394
[#7416]: https://github.com/tokio-rs/tokio/pull/7416
[#7422]: https://github.com/tokio-rs/tokio/pull/7422
[#7426]: https://github.com/tokio-rs/tokio/pull/7426
[#7429]: https://github.com/tokio-rs/tokio/pull/7429
[#7417]: https://github.com/tokio-rs/tokio/pull/7417