4605 Commits
Author SHA1 Message Date
ADD-SPandGitHub f21f2693f0 runtime: fix race condition during the blocking pool shutdown (#7922) 2026-02-23 22:50:27 +01:00
Andrew LinandGitHub d81e8f0acb macros: remove (most) local use declarations in tokio::select! (#7929) 2026-02-23 10:46:18 +01:00
Phong ChuongandGitHub 25e7f2641e rt: fix missing quotation in docs (#7925) 2026-02-20 23:41:12 +02:00
Phong ChuongandGitHub e1a91ef114 util: fix typo in docs (#7926) 2026-02-20 23:36:27 +02:00
0rlych1kk4andGitHub 1b11840f53 task: clarify when to use spawn_blocking vs dedicated threads (#7923) 2026-02-20 14:19:27 +00:00
Maxime GrenuandGitHub 09f92b5aed sync: clarify that recv returns None once closed and no more messages (#7920)
The previous documentation stated:
  'As such, Receiver::poll returns Ok(Ready(None))'

This was misleading: when all Sender handles are dropped, recv does NOT
immediately return None. Buffered messages already in the channel can
still be received. Only after all senders are dropped AND the channel
has been fully drained does recv return None.

Also update the method reference from the internal Receiver::poll to the
public API: Receiver::recv and Receiver::poll_recv.

Closes #6053
2026-02-20 08:34:11 +00:00
Maxime GrenuandGitHub e65040f061 sync: clarify RwLock fairness documentation (#7919)
The previous wording 'if a task that wishes to acquire the write lock is
at the head of the queue, read locks will not be given out' was
misleading: it implied that readers are only blocked when the writer is
first in the queue. In reality, due to the FIFO ordering, any write
request queued *before* a read request will block that reader.

Replace with a more accurate description: 'a read lock will not be given
out until all write lock requests that were queued before it have been
acquired and released.'

Closes #6901
2026-02-19 15:57:42 +01:00
ADD-SPandGitHub c23735d43b runtime: fix TOCTOU issue when decreasing num_idle_threads (#7918) 2026-02-17 21:50:26 -08:00
Varun ChawlaandGitHub d83921bc51 runtime: fix double increment of num_idle_threads on shutdown (#7910) 2026-02-16 23:19:50 -08:00
cuiandGitHub 96f64f4ee2 codec: fix is_readable should be buffer empty or not (#7912) 2026-02-16 17:33:35 +01:00
ZenandGitHub 00d10c22f8 task: fix two typos (#7913) 2026-02-16 10:51:10 +00:00
ZenandGitHub a25d95a8c4 io: clarify the behavior of AsyncWriteExt::shutdown() (#7908) 2026-02-14 11:42:24 -08:00
Stepan KoltsovandGitHub 9e7e1ef7ad io: Explain how to flush stdout/stderr (#7904) 2026-02-12 14:06:48 +00:00
Mattia PitossiandGitHub 5bcd7c1d09 task: fix task module feature flags in docs (#7891) 2026-02-12 12:27:25 +01:00
winlogonandGitHub 2486d49778 tests: skip issue_7144 if strace is missing (#7903) 2026-02-12 12:26:20 +01:00
Tim Vilgot Mikael FredenbergandGitHub 9dacb1c53e tokio: replace some futures with poll_fn (#7895) 2026-02-09 13:30:31 +01:00
Alex HandGitHub 8167f87137 task: add AbortOnDrop (#7855) 2026-02-09 13:23:46 +01:00
Mattia PitossiandGitHub 159f70bc55 ci: fix ambiguity issue during tokio releases (#7848) 2026-02-09 11:04:59 +01:00
Jack KleemanandGitHub d1e4db1018 sync: drop rx waker when oneshot receiver is dropped (#7886) 2026-02-09 10:17:45 +01:00
DaniPopesandGitHub 530af3f331 runtime: correct the default thread name in docs (#7896) 2026-02-08 03:34:44 -08:00
George Burgess IVandGitHub d89e998922 net: fix GET_BUF_SIZE constant for target_os = "android" (#7889)
We recently tried to upgrade Android to the newest tokio, but tests that
use these constants fail, since Android is provided the non-Linux
constants.
2026-02-06 15:08:04 +01:00
tsyrulbandGitHub 306ed1c30b stream: bump minimum tokio version to 1.38 (#7887)
tokio-stream 0.1.18 added `Stream::size_hint` for
`ReceiverStream` and `UnboundedReceiverStream` (PR #7492),
which calls `Receiver::is_closed()` and `Receiver::len()`
(added in tokio 1.37.0) and `Receiver::capacity()` and
`Receiver::max_capacity()` (added in tokio 1.38.0).

The declared minimum of tokio 1.15.0 is no longer sufficient,
causing compilation failures when resolved via
`-Z direct-minimal-versions`.

Refs: #7492
2026-02-06 11:45:30 +01:00
Tim Vilgot Mikael FredenbergandGitHub 7e952697e8 signal: specialize windows Registry (#7885) 2026-02-06 11:29:34 +01:00
n4n5andGitHub c0943f99f0 rt: clarify the documentation of Runtime::spawn (#7803) 2026-02-04 11:27:46 +01:00
DaniPopesandGitHub 187a2146a7 runtime: shorten default thread name to fit in Linux limit (#7880)
Linux thread names are truncated at 15 characters.
Currently, Tokio threads show up as "tokio-runtime-w", whereas
shortening "runtime" to "rt" would make the thread name perfectly fit
in the 15 character limit.
2026-02-03 16:23:30 +01:00
Muzzaiyyan HussainandGitHub f61374f931 io: fix incorrect and confusing AsyncWrite documentation (#7875) 2026-02-03 16:22:34 +01:00
ADD-SPandGitHub 0d6c7af3e4 runtime: wake deferred tasks before entering block_in_place (#7879) 2026-02-03 14:07:09 +01:00
Alice RyhlandGitHub 9dc9b53ae1 io: implement vectored writes for write_buf (#7871) 2026-01-30 19:52:57 +01:00
Tim Vilgot Mikael FredenbergandGitHub c3b31ba2ab signal: guarantee that listeners never return None (#7869) 2026-01-29 19:24:47 -08:00
Alice RyhlandGitHub b68ea4156a io: hardcode platform list for poll_write (#7872) 2026-01-29 15:12:10 +01:00
Chinmoy DasandGitHub 8f6d0864c3 macros: improve error message for return type mismatch in #[tokio::main] (#7856) 2026-01-25 01:09:05 +09:00
mu001999andGitHub 63abec0525 macros: use call_site hygiene to avoid unused qualification (#7866) 2026-01-22 14:54:43 +01:00
Mattia PitossiandGitHub 8fd44d9bdc docs: fix link to tokio::select! (#7867) 2026-01-20 23:05:01 +02:00
ShawnandGitHub 450fa2d09d fs: add tests for when fs::hard_link fails (#7863) 2026-01-19 12:51:47 +00:00
Andrea BozzoandGitHub 8cfa309126 time: add docs about auto-advance and when to use sleep (#7858) 2026-01-19 09:12:37 +01:00
bf185b61ff docs: fix broken links of select! (#7860)
Co-authored-by: Martin Grigorov <[email protected]>
2026-01-17 10:10:59 -08:00
Mattia PitossiandGitHub 27d1383581 deps: bump tokio to 1.47.0 (#7862) 2026-01-17 10:06:00 -08:00
Alice RyhlandGitHub 11f9d4db73 macros: add test for special return types (#7857) 2026-01-15 10:25:45 +01:00
F4RANandGitHub 1280cf81de io: always cleanup AsyncFd registration list on deregister (#7773) 2026-01-14 15:02:59 +01:00
vrtgsandGitHub 67682ac2e8 io: add optimizer hint that memchr returns in-bounds pointer (#7792) 2026-01-14 14:58:33 +01:00
Finn ShengandGitHub b88c02c55e time: implement FusedStream for IntervalStream (#7854) 2026-01-14 14:49:03 +01:00
Tim Vilgot Mikael FredenbergandGitHub 240cc44da8 signal: remember the result of SetConsoleCtrlHandler (#7833)
The unix implementation remembers whether it failed or not, so the
windows implementation should do so as well. This PR also replaces the
`(Once, AtomicState)` pair with `OnceLock` and tries to remember the
original errno value.
2026-01-14 13:20:41 +01:00
IgorErinandGitHub 7ed6da6733 runtime: add comments to schedule_option_task_without_yield (#7851) 2026-01-13 10:56:50 -08:00
TahmidandGitHub 7a2135f426 runtime: avoid lock acquisition after uring init (#7850) 2026-01-09 17:06:14 -08:00
Alice RyhlandGitHub 0913cad381 runtime: revert "avoid lock acquisition after uring init" (#7849)
This reverts commit ff9681b3c6.
2026-01-09 10:15:06 +01:00
TahmidandGitHub ff9681b3c6 runtime: avoid lock acquisition after uring init (#7843) 2026-01-08 19:24:29 -08:00
Alice RyhlandGitHub f1cb007a28 net: add TcpStream::set_zero_linger (#7837) 2026-01-08 08:18:04 +00:00
Zachary BeckerandGitHub 2d4853ea16 examples: use select! instead of join! in connect_(tcp|udp) examples (#7842) 2026-01-07 22:52:10 -08:00
Marc-Antoine PerennouandGitHub d65165f7b5 rt: make is_rt_shutdown_err method public (#7771) 2026-01-07 08:26:01 +00:00
Mattia PitossiandGitHub 71a1a3da7a tokio: update outdated unstable features section (#7839) 2026-01-07 09:03:12 +01:00