3805 Commits

Author SHA1 Message Date
kim / Motoyuki Kimura
581cd41d79
io: make repeat and sink cooperative (#6254) 2023-12-30 15:26:16 +01:00
kim / Motoyuki Kimura
5f7fe8fd0d
ci: fix new warnings on 1.75.0 (#6255) 2023-12-29 17:22:54 +01:00
Alice Ryhl
52f28dcb4f
benches: fix benchmarking conflicts for real this time (#6246) 2023-12-28 09:52:18 +00:00
Alice Ryhl
d51308b035
ci: fix configured clippy msrv (#6244) 2023-12-23 00:28:14 +00:00
Alice Ryhl
7cae89af47
benches: fix benchmarking conflicts (#6243) 2023-12-22 22:43:05 +00:00
Eddy Oyieko
53ad102cf0
util: implement Sink for Either (#6239) 2023-12-22 18:23:04 +01:00
Miccah
e7214e3670
io: implement AsyncWrite for Empty (#6235) 2023-12-20 00:05:53 +00:00
Alice Ryhl
433545782e
tests: fix name of coop_budget.rs (#6234) 2023-12-19 19:02:02 +00:00
snek
bd15bace35
io: add tokio::io::Join (#6220) 2023-12-19 19:51:48 +01:00
Alice Ryhl
410660fd54
Merge 'tokio-1.35.1' into 'master' (#6231) 2023-12-19 18:15:46 +01:00
Alice Ryhl
46ff36386d
chore: prepare Tokio v1.35.1 (#6230) tokio-1.35.1 2023-12-19 18:14:34 +01:00
Alice Ryhl
0a1695ebfb
Merge 'tokio-1.32.1' into 'tokio-1.35.x' (#6229) 2023-12-19 18:11:16 +01:00
Alice Ryhl
c4f0178b74
chore: prepare Tokio v1.32.1 (#6228) tokio-1.32.1 2023-12-19 18:07:05 +01:00
Alice Ryhl
22b3a65934
Merge 'tokio-1.25.3' into 'tokio-1.32.x' (#6227) 2023-12-19 18:00:41 +01:00
Noah Kennedy
0d362339d5
chore: release v1.25.3 (#6223)
# 1.25.3 (December 17thm 2023)

### Fixed
- io: add budgeting to `tokio::runtime::io::registration::async_io` ([#6221])

[#6221]: https://github.com/tokio-rs/tokio/pull/6221
tokio-1.25.3
2023-12-19 17:09:44 +01:00
Noah Kennedy
ab7313ff6b
io: add budgeting to tokio::runtime::io::registration::async_io (#6221)
Fixes #5946.
Fixes #4782.

This change adds budgeting to most of the remaining unbudgeted IO operations which can complete instantly, including datagram send/recv operations and listener socket accepts.

This is particularly significant for scenarios in which resource limits are hit, as it can be common for things like listener tasks to spin when receiving errors and just log them, busy looping worker threads which might otherwise be handling existing connections and closing them.

This can also sometimes lead to complex failure scenarios within datagram systems experiencing resource exhaustion.
2023-12-17 22:34:51 +00:00
oliver
4aa7bbff4c
chore: typo fixes (#6213)
Co-authored-by: kwfn <calm.rain5339@fastmail.com>
2023-12-11 19:22:55 +00:00
Bryan Baron
c06a55088b
coop: fix typo in docs for task::unconstrained (#6212) 2023-12-11 17:50:24 +01:00
Alice Ryhl
92a3455c66
chore: prepare Tokio v1.35.0 (#6197) tokio-1.35.0 2023-12-08 23:35:27 +01:00
Alice Ryhl
1968565825
chore: use relaxed load for unsync_load (#6203) 2023-12-08 22:28:40 +00:00
Alice Ryhl
c9273f1aee
sync: improve safety comments for WakeList (#6200) 2023-12-08 18:57:01 +01:00
Alice Ryhl
e05d0f8c2c
changelog: fix missing link for 1.8.2 (#6199) 2023-12-08 17:51:46 +00:00
Alice Ryhl
debcb2254a
Revert "net: add SocketAddr::as_abstract_namespace (#6144)" (#6198)
This reverts commit 2400769b54fd31186b07bfbec277e846e8d64c16.
2023-12-08 18:44:32 +01:00
tijsvd
83b7397e44
io: drop the Sized requirements from AsyncReadExt.read_buf (#6169) 2023-12-08 09:51:08 +01:00
NAHO
3991f9f9a4
docs: fix typo in 'tokio/src/sync/broadcast.rs' (#6182) 2023-12-08 09:48:36 +01:00
Alice Ryhl
48c0e6283f
chore: use relaxed load for unsync_load on miri (#6179) 2023-12-08 09:48:15 +01:00
Jack Wrenn
d561b5850a
taskdump: skip notified tasks during taskdumps (#6194)
Fixes #6051
2023-12-08 09:47:46 +01:00
Weijia Jiang
3a4aef17b2
runtime: reduce the lock contention in task spawn (#6001) 2023-12-07 10:45:07 +00:00
Andrew Walbran
a0a58d7edd
tokio: update nix dependency to 0.27.1 (#6190) 2023-12-04 16:09:58 +01:00
fzyzcjy
ed4f766c98
runtime: make Runtime unwind safe (#6189) 2023-12-04 13:07:31 +01:00
zhiqiangxu
3ac4cfb68a
runtime: move comment to the right place (#6184) 2023-12-03 11:47:40 +01:00
Kamila Borowska
7232424a81
chore: remove uses of unsafe from maybe_done.rs (#6180) 2023-12-01 12:51:42 +01:00
simlay
4c33ed33f6
net: add Apple watchOS support (#6176) 2023-11-29 21:16:48 +01:00
Alice Ryhl
3468b4b72f
runtime: document fairness guarantees and current behavior (#6145) 2023-11-29 12:32:58 +01:00
Hans Krutzer
2400769b54
net: add SocketAddr::as_abstract_namespace (#6144) 2023-11-25 14:44:34 +00:00
aliu
a8e8fa6681
time: add DelayQueue::deadline (#6163) 2023-11-23 18:20:26 +01:00
Alice Ryhl
498288cd31
chore: fix docsrs without net feature (#6166) 2023-11-23 15:20:46 +01:00
Hayden Stainsby
7a30504fd4
task: make task span explicit root (#6158)
In Tokio, tasks are optionally instrumented with tracing spans to allow
analysis of the runtime behavior to be performed with tools like
tokio-console.

The span that is created for each task gets currently follows the
default tracing behavior and has a contextual parent attached to it
based on the span that is actual when `tokio::spawn` or similar is
called.

However, in tracing, a span will remain "alive" until all its children
spans are closed. This doesn't match how spawned tasks work. A task may
outlive the context in which is was spawned (and frequently does). This
causes tasks which spawn other - longer living - tasks to appear in
`tokio-console` as having lost their waker when instead they should be
shown as completed (tokio-rs/console#345). It can also cause undesired
behavior for unrelated tracing spans if a subscriber is receiving both
the other spans as well as Tokio's instrumentation.

To fix this mismatch in behavior, the task span has `parent: None` set
on it, making it an explicit root - it has no parent. The same was
already done for all spans representing resources in #6107. This change
is made within the scope of #5792.

Due to a defect in the currently available `tracing-mock` crate, it is
not possible to test this change at a tracing level
(tokio-rs/tracing#2440). Instead, a test for the `console-subscriber`
has been written which shows that this change fixes the defect as
observed in `tokio-console` (tokio-rs/console#490).
2023-11-19 19:21:19 +01:00
Daniel Sedlak
340d4e5238
runtime: fix comment typos (#6143) 2023-11-19 14:01:29 +01:00
Marc-Andre Giroux
7b555185ff
sync: avoid creating resource spans with curernt parent, use a None parent instead (#6107)
A child span stored on sync primitives can keep the parent span open,
unable to be closed by subscribers due to the sync resource referencing it.

Fixes: #6106

Co-authored-by: David Barsky <me@davidbarsky.com>
2023-11-14 16:24:21 -05:00
Hayden Stainsby
135d7ca38e
taskdump: fix taskdump cargo config example (#6150)
The documentation for the `Handle::dump()` method includes a description
of the Rust flags needed. However, the sample `.cargo/config.toml` file
is incorrect. It gives the Rust flags as:

```
rustflags = ["--cfg tokio_unstable", "--cfg tokio_taskdump"]
```

However, each command line argument needs to be a separate element in
the array:

```
rustflags = ["--cfg", "tokio_unstable", "--cfg", "tokio_taskdump"]
```

This change corrects that line.
2023-11-14 20:17:05 +01:00
Alice Ryhl
e6720f985d
metrics: fix hang in worker_overflow_count test (#6146)
Closes: #6054
2023-11-14 20:13:56 +01:00
Alice Ryhl
d44e995bb0
task: document cancel safety of LocalSet::run_until (#6147)
Closes: #6122
2023-11-14 20:13:43 +01:00
Alice Ryhl
06660ef00a
io: flush in AsyncWriteExt examples (#6149)
Closes: #6068
2023-11-14 20:13:00 +01:00
Alice Ryhl
2e5773a6fe
runtime: handle missing context on wake (#6148) 2023-11-14 14:01:10 +01:00
Carl Lerche
49eb26f159
chore: prepare Tokio v1.34.0 release (#6138)
This also includes:
  - tokio-macros v2.2.0
tokio-1.34.0 tokio-macros-2.2.0
2023-11-09 11:22:54 -08:00
Carl Lerche
19d96c0674
io: increase ScheduledIo tick resolution (#6135)
While this is no current evidence that increasing the tick resolution is
necessary, since we have available bits, we might as well use them.
2023-11-08 15:11:18 -08:00
Carl Lerche
30b2eb17c8
io: fix possible I/O resource hang (#6134)
Use a per-resource tick instead of a single global tick counter. This
prevents the hang issue described by #6133.

Fixes: #6133
2023-11-08 14:05:06 -08:00
aliu
8ec3e0d94d
metrics: update stats when unparking in multi-thread (#6131) 2023-11-06 17:14:51 +01:00
Yotam Ofek
161ecec156
stream: fix typo in peekable docs (#6130) 2023-11-05 22:51:09 +01:00