tokio-1.40.0
tokio-rs/tokiotokio-1.40.0Aug 30, 2024by Darksonn
AI Summary
Adds utility stream types, stabilizes process group control, improves error introspection, and enhances task management capabilities.
Key Highlights
- Adds `io::util::SimplexStream` utility type
- Stabilizes `Command::process_group` for process management
- Adds `JoinSet::join_all` for joining multiple tasks
- Adds `TrySendError` and `SendTimeoutError` introspection methods
- Uses `NonZeroU64` for task IDs to avoid miri issues
New Features
- io::util::SimplexStream
- Command::process_group
- JoinSet::join_all
- JoinError panic message inclusion
- AbortHandle::abort_handle #[must_use]
Full Release Notes
# 1.40.0 (August 30th, 2024)
### Added
- io: add `util::SimplexStream` ([#6589])
- process: stabilize `Command::process_group` ([#6731])
- sync: add `{TrySendError,SendTimeoutError}::into_inner` ([#6755])
- task: add `JoinSet::join_all` ([#6784])
### Added (unstable)
- runtime: add `Builder::{on_task_spawn, on_task_terminate}` ([#6742])
### Changed
- io: use vectored io for `write_all_buf` when possible ([#6724])
- runtime: prevent niche-optimization to avoid triggering miri ([#6744])
- sync: mark mpsc types as `UnwindSafe` ([#6783])
- sync,time: make `Sleep` and `BatchSemaphore` instrumentation explicit roots ([#6727])
- task: use `NonZeroU64` for `task::Id` ([#6733])
- task: include panic message when printing `JoinError` ([#6753])
- task: add `#[must_use]` to `JoinHandle::abort_handle` ([#6762])
- time: eliminate timer wheel allocations ([#6779])
### Documented
- docs: clarify that `[build]` section doesn't go in Cargo.toml ([#6728])
- io: clarify zero remaining capacity case ([#6790])
- macros: improve documentation for `select!` ([#6774])
- sync: document mpsc channel allocation behavior ([#6773])
[#6589]: https://github.com/tokio-rs/tokio/pull/6589
[#6724]: https://github.com/tokio-rs/tokio/pull/6724
[#6727]: https://github.com/tokio-rs/tokio/pull/6727
[#6728]: https://github.com/tokio-rs/tokio/pull/6728
[#6731]: https://github.com/tokio-rs/tokio/pull/6731
[#6733]: https://github.com/tokio-rs/tokio/pull/6733
[#6742]: https://github.com/tokio-rs/tokio/pull/6742
[#6744]: https://github.com/tokio-rs/tokio/pull/6744
[#6753]: https://github.com/tokio-rs/tokio/pull/6753
[#6755]: https://github.com/tokio-rs/tokio/pull/6755
[#6762]: https://github.com/tokio-rs/tokio/pull/6762
[#6773]: https://github.com/tokio-rs/tokio/pull/6773
[#6774]: https://github.com/tokio-rs/tokio/pull/6774
[#6779]: https://github.com/tokio-rs/tokio/pull/6779
[#6783]: https://github.com/tokio-rs/tokio/pull/6783
[#6784]: https://github.com/tokio-rs/tokio/pull/6784
[#6790]: https://github.com/tokio-rs/tokio/pull/6790