tokio-1.18.0
tokio-rs/tokiotokio-1.18.0Apr 27, 2022by hawkw
AI Summary
This release adds UdpSocket::peer_addr, new sync methods, and introduces unstable task features like task::Id and AbortHandle.
Key Highlights
- Added UdpSocket::peer_addr
- Added watch::Sender::send_modify
- Added broadcast::Receiver::len
- Added watch::Receiver::same_channel
- Added task::Id and AbortHandle (unstable)
New Features
- UdpSocket::peer_addr
- watch::Sender::send_modify
- broadcast::Receiver::len
- watch::Receiver::same_channel
- task::Id
- AbortHandle
Full Release Notes
# 1.18.0 (April 27, 2022) This release adds a number of new APIs in `tokio::net`, `tokio::signal`, and `tokio::sync`. In addition, it adds new unstable APIs to `tokio::task` (`Id`s for uniquely identifying a task, and `AbortHandle` for remotely cancelling a task), as well as a number of bugfixes. ### Fixed - blocking: add missing `#[track_caller]` for `spawn_blocking` (#4616) - macros: fix `select` macro to process 64 branches (#4519) - net: fix `try_io` methods not calling Mio's `try_io` internally (#4582) - runtime: recover when OS fails to spawn a new thread (#4485) ### Added - net: add `UdpSocket::peer_addr` (#4611) - net: add `try_read_buf` method for named pipes (#4626) - signal: add `SignalKind` `Hash`/`Eq` impls and `c_int` conversion (#4540) - signal: add support for signals up to `SIGRTMAX` (#4555) - sync: add `watch::Sender::send_modify` method (#4310) - sync: add `broadcast::Receiver::len` method (#4542) - sync: add `watch::Receiver::same_channel` method (#4581) - sync: implement `Clone` for `RecvError` types (#4560) ### Changed - update `mio` to 0.8.1 (#4582) - macros: rename `tokio::select!`'s internal `util` module (#4543) - runtime: use `Vec::with_capacity` when building runtime (#4553) ### Documented - improve docs for `tokio_unstable` (#4524) - runtime: include more documentation for thread_pool/worker (#4511) - runtime: update `Handle::current`'s docs to mention `EnterGuard` (#4567) - time: clarify platform specific timer resolution (#4474) - signal: document that `Signal::recv` is cancel-safe (#4634) - sync: `UnboundedReceiver` close docs (#4548) ### Unstable The following changes only apply when building with `--cfg tokio_unstable`: - task: add `task::Id` type (#4630) - task: add `AbortHandle` type for cancelling tasks in a `JoinSet` (#4530], [#4640) - task: fix missing `doc(cfg(...))` attributes for `JoinSet` (#4531) - task: fix broken link in `AbortHandle` RustDoc (#4545) - metrics: add initial IO driver metrics (#4507)