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 ofcore_threads
(#7186)