Commit Graph
4507 Commits
Author SHA1 Message Date
Mattia Pitossi bdcea6b2cd fs: skip some io_uring tests on Kernels that don't support it (#8134) 2026-05-11 13:58:50 +02:00
Tim Vilgot Mikael Fredenberg ee0dc90926 time: consolidate mutex locks on spurious poll (#8124) 2026-05-08 11:02:54 -07:00
Alice Ryhl 78594a7497 Merge 'tokio-1.52.3' into 'master' (#8131) 2026-05-08 13:00:22 +00:00
Alice Ryhl d87569164f chore: prepare Tokio v1.52.3 (#8130) tokio-1.52.3 2026-05-08 14:52:32 +02:00
Alice Ryhl e1aebb031c Merge 'tokio-1.51.3' into 'tokio-1.52.x' (#8129) 2026-05-08 09:30:59 +00:00
Alice Ryhl fd63094ee0 chore: prepare Tokio v1.51.3 (#8127) tokio-1.51.3 2026-05-08 10:45:32 +02:00
xtqqczze 067f229371 io: replace Vec method truncate(0) with clear (#8125)
https://rust-lang.github.io/rust-clippy/master/index.html#manual_clear
2026-05-08 08:38:49 +02:00
Alice Ryhl 8c600d0fd2 Merge 'tokio-1.47.5' into 'tokio-1.51.x' (#8123) 2026-05-07 13:59:06 +02:00
Alice Ryhl 11bfc1345b chore: prepare Tokio v1.47.5 (#8122) tokio-1.47.5 2026-05-07 13:55:35 +02:00
Alice Ryhl f085b6211b sync: notify receivers in mpsc OwnedPermit::release() method (#8075) 2026-05-07 09:32:14 +02:00
Alice Ryhl 30d25ccb8b sync: require that an RwLock has max_readers != 0 (#8076) 2026-05-07 09:31:12 +02:00
Alice Ryhl 9fccf5339d sync: return Empty from try_recv() when mpsc is closed with outstanding permits (#8074) 2026-05-07 09:30:50 +02:00
Alice Ryhl ebf61b45b5 sync: fix underflow in mpsc channel len() (#8062) 2026-05-07 09:29:33 +02:00
TimoandMartin Tzvetanov Grigorov 02ff0833e0 sync: implement PartialEq and Eq for CancellationToken (#8110)
Co-authored-by: Martin Tzvetanov Grigorov <[email protected]>
2026-05-05 13:46:35 +02:00
Alice Ryhl e56ff72fe7 Merge 'tokio-1.52.2' into 'master' (#8117) 2026-05-04 19:53:32 +02:00
Alice Ryhl 4abe9d732e chore: prepare Tokio v1.52.2 (#8115) tokio-1.52.2 2026-05-04 14:39:25 +02:00
Alice Ryhl f82bcf3f45 Merge 'tokio-1.51.2' into 'tokio-1.52.x' (#8114) 2026-05-04 12:16:52 +02:00
Alice Ryhl 7db9bc41f1 test: revert "remove churn() task from lifo_stealable" (#8114)
This reverts commit 6c03e03898.
2026-05-04 12:15:37 +02:00
Alice Ryhl 64834ec701 chore: prepare Tokio v1.51.2 (#8113) tokio-1.51.2 2026-05-04 12:11:07 +02:00
Alice Ryhl 967f5715a7 runtime: revert "steal tasks from the LIFO slot" (#8100)
This reverts commit eeb55c733b.
2026-05-04 10:08:30 +02:00
HueCodes e77885a494 net: implement UCred::pid on FreeBSD (#8086) 2026-05-03 10:28:31 +02:00
Tim Vilgot Mikael Fredenberg 0926ab195a time: defer waker clone on spurious poll (#8107) 2026-05-02 20:39:08 -07:00
Alice RyhlandMartin Tzvetanov Grigorov 50c23d300a runtime: avoid illegal state in FastRand (#8078)
Co-authored-by: Martin Tzvetanov Grigorov <[email protected]>
2026-05-02 19:01:15 +02:00
Mattia Pitossi 1cd6e65d76 ci: small improvements for freeBSD jobs (#8102) 2026-05-02 17:44:40 +02:00
Alice Ryhl 5ee26af3db Merge tokio-1.52.x (for #8101) into master (#8106) 2026-05-02 15:13:54 +02:00
Alice Ryhl 9271e3ed05 Merge tokio-1.51.x (for #8101) into tokio-1.52.x (#8106) 2026-05-02 15:13:06 +02:00
Alice Ryhl cd1823f43e Revert "Pin stable to 1.94 for tokio-1.51.x" (#8106)
As we are merging tokio-1.51.x into tokio-1.52.x and then master, we
should not include this change.

This reverts commit bde3f20b0f.
2026-05-02 15:12:29 +02:00
Alice Ryhl a97cf12ed9 Merge tokio-1.47.x (commit 670a907c55) into tokio-1.51.x (#8105) 2026-05-02 13:52:07 +02:00
Alice Ryhl bde3f20b0f Pin stable to 1.94 for tokio-1.51.x (#8105) 2026-05-02 13:51:31 +02:00
Alice RyhlandMattia Pitossi 670a907c55 ci: fix CI on tokio-1.47.x (#8101)
Co-authored-by: Mattia Pitossi <[email protected]>
2026-05-02 13:33:40 +02:00
Rachit2323 5030b3005e tokio-stream: implement FusedStream for various stream adaptors (#8096)
`MapWhile` is intentionally excluded because its current implementation
does not track when the closure returns `None` early, making a correct
`is_terminated()` impossible without a separate semantic change.
2026-05-01 14:09:28 +02:00
Tim Vilgot Mikael Fredenberg 26dee92b53 chore: use functional slice building (#8097)
Noticed some redundant procedural code.
2026-04-30 11:36:55 +02:00
Mawer d3565a2923 fs: rename Windows symlink dir test (#8098) 2026-04-30 10:47:45 +02:00
Alice Ryhl 8f81e0814b time: avoid stack overflow in runtime constructor (#8093) 2026-04-29 05:26:57 +00:00
stormshield-fabs 47cc31590f tokio-stream: implement FusedStream for Fuse (#8090) 2026-04-28 17:33:54 +02:00
Alex Gaynor dc0f728162 blocking: introduce a regression test for #8056 (#8068) 2026-04-28 12:47:49 +02:00
Ralf Jung 89713ad1ec miri tests: fstat is supported now (#8088) 2026-04-27 15:23:40 +03:00
Eliza Weisman 6c03e03898 test: remove churn() task from lifo_stealable (#8070)
Currently, the `rt_threaded::lifo_stealable` test I added in #7431
spawns an additional task which sleeps on a 4ms timer in a loop. This
ensures that no worker remains permanently parked. This was added
because it was necessary to stop the LIFO slot deadlock from occurring
prior to changes in the logic for determining whether to notify another
worker, which is what @Darksonn  was referring to in [this comment][1].
Removing the `churn()` test makes the test actually validate that
another worker is notified to steal the LIFO task, and that the changes
from #7431 will *always* prevent a LIFO slot deadlock, regardless of the
behavior of other tasks on the runtime. See also [this comment][2] for
further discussion.

[1]: https://github.com/tokio-rs/tokio/pull/7431#discussion_r2184724657
[2]: https://github.com/tokio-rs/tokio/pull/8069#issuecomment-4274244723
2026-04-20 21:03:42 +02:00
Alice Ryhl 16bc4e2e28 time: add #[track_caller] and panic docs to timeout_at() (#8077) 2026-04-20 20:22:36 +02:00
BarryandMattia Pitossi 1afb391350 net: document pipe try_read*/try_write* readiness behavior (#8032)
Add a Notes section to all five try_* methods on pipe::Sender and
pipe::Receiver explaining that the runtime's I/O driver only delivers
readiness events after control is yielded back to it, so calling
try_read/try_write before any .await returns WouldBlock even when the
operation could otherwise succeed.

This is the same readiness model used by every other Tokio I/O type;
the pipe docs simply did not previously call it out. Refs #7625.

---------

Co-authored-by: Mattia Pitossi <[email protected]>
2026-04-19 19:52:41 +02:00
Mattia Pitossi b010b5ddaf test taskdump docs (#8064) 2026-04-17 23:32:22 +03:00
Eliza Weisman 905c146aed chore: prepare to release v1.52.1 (#8059)
# 1.52.1 (April 16th, 2026)

## Fixed

- runtime: revert [#7757] to fix [a regression][#8056] that causes
  `spawn_blocking` to hang ([#8057])

[#7757]: https://github.com/tokio-rs/tokio/pull/7757
[#8056]: https://github.com/tokio-rs/tokio/pull/8056
[#8057]: https://github.com/tokio-rs/tokio/pull/8057
tokio-1.52.1
2026-04-16 21:28:05 +00:00
Eliza Weisman 56aaa43e91 rt: revert #7757 to fix regression in spawn_blocking (#8057)
This reverts commit 1604bc3351.

Unfortunately, this commit introduced a regression that causes programs
using `spawn_blocking` to hang (see #8056). To fix the regression, we
need to undo this change and publish a v1.52.1 release as soon as
possible.

In the future, we may wish to bring back a sharded queue for
`spawn_blocking` tasks, either based on the implementation added in
#7757 or a new one. However, since this is a substantial change to the
runtime internals, I think such a change should probably be done as an
unstable, opt-in `tokio::runtime::Builder` setting initially, so that we
don't regress existing users. I had hoped we could do this now, but
unfortunately, the sharded queue implementation from #7757 is kind of
tightly coupled with the rest of the `spawn_blocking` machinery and
cannot be easily swapped out --- and the hang still occurs with
`NUM_SHARDS` set to 1, so there isn't an easy way to turn it on and off.
Therefore, in the interest of getting a fix out ASAP, this is just a
simple revert.

Fixes #8056
2026-04-16 20:57:22 +00:00
Eliza Weisman 57ff47ab58 ci: update trybuild to expect output from rustc 1.95.0 (#8058) 2026-04-16 20:32:53 +00:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 812de3e134 ci: bump taiki-e/cache-cargo-install-action from 1 to 3 (#8053)
Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 1 to 3.
- [Release notes](https://github.com/taiki-e/cache-cargo-install-action/releases)
- [Changelog](https://github.com/taiki-e/cache-cargo-install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/cache-cargo-install-action/compare/v1...v3)

---
updated-dependencies:
- dependency-name: taiki-e/cache-cargo-install-action
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-16 09:30:55 +02:00
Martin Grigorov ba82e73c7b ci: use Dependabot to keep github actions up to date (#8052) 2026-04-16 08:51:22 +02:00
Mattia Pitossi 2e85f9ddf8 ci: replace cirrus-ci with freebsd-vm (#8041) 2026-04-16 08:40:04 +02:00
Alice Ryhl a7e1cd8ff8 ci: update GitHub Actions workflows to use latest tool versions (#8047) 2026-04-15 16:57:43 +00:00
Eliza Weisman 5f7be0ac42 chore: perpare 1.52.0 (#8045)
# 1.52.0 (April 14th, 2026)

## Added

- io: `AioSource::register_borrowed` for I/O safety support ([#7992])
- net: add `try_io` function to `unix::pipe` sender and receiver types
  ([#8030])

## Added (unstable)

- runtime: `Builder::enable_eager_driver_handoff` setting enable eager
  hand off of the I/O and time drivers before polling tasks ([#8010])
- taskdump: add `trace_with()` for customized task dumps ([#8025])
- taskdump: allow `impl FnMut()` in `trace_with` instead of just `fn()`
  ([#8040])
- fs: support `io_uring` in `AsyncRead` for `File` ([#7907])

## Changed

- runtime: improve `spawn_blocking` scalability with sharded queue
  ([#7757])
- runtime: use `compare_exchange_weak()` in worker queue ([#8028])

## Fixed

- runtime: overflow second half of tasks when local queue is filled
  instead of first half ([#8029])

## Documented

- docs: fix typo in `oneshot::Sender::send` docs ([#8026])
- docs: hide #[tokio::main] attribute in the docs of `sync::watch`
  ([#8035])
- net: add docs on `ConnectionRefused` errors with UDP sockets ([#7870])

[#7757]: https://github.com/tokio-rs/tokio/pull/7757
[#7870]: https://github.com/tokio-rs/tokio/pull/7870
[#7907]: https://github.com/tokio-rs/tokio/pull/7907
[#7992]: https://github.com/tokio-rs/tokio/pull/7992
[#8010]: https://github.com/tokio-rs/tokio/pull/8010
[#8025]: https://github.com/tokio-rs/tokio/pull/8025
[#8026]: https://github.com/tokio-rs/tokio/pull/8026
[#8028]: https://github.com/tokio-rs/tokio/pull/8028
[#8029]: https://github.com/tokio-rs/tokio/pull/8029
[#8030]: https://github.com/tokio-rs/tokio/pull/8030
[#8035]: https://github.com/tokio-rs/tokio/pull/8035
[#8040]: https://github.com/tokio-rs/tokio/pull/8040
tokio-1.52.0
2026-04-14 11:56:01 -07:00
Alice Ryhl 36d12d2686 taskdump: allow impl FnMut() in taskdumps instead of just fn() (#8040) 2026-04-14 19:18:56 +02:00