298 Commits

Author SHA1 Message Date
Motoyuki Kimura
79a2afae9f
util: enable Either to use underlying AsyncWrite implementation (#7025) 2024-12-10 01:52:16 +09:00
tiif
eb72ddde3b
task: run spawn_pinned tests with miri (#7023) 2024-12-08 12:45:16 +01:00
Alice Ryhl
c032ea0203
ci: detect trailing whitespace (#7013) 2024-12-04 17:23:13 +01:00
Alice Ryhl
0b31c2f73d
chore: prepare tokio-util v0.7.13 (#7012) 2024-12-04 12:49:55 +01:00
Zettroke
129f9fc0c8
codec: fix incorrect handling of invalid utf-8 in LinesCodec::decode_eof (#7011) 2024-12-04 10:18:14 +00:00
David Herberth
bce9780dd3
time: use array::from_fn instead of manually creating array (#7000) 2024-12-01 19:54:30 +01:00
Hamir Mahal
d4178cf349
tokio: avoid positional fmt params when possible (#6978) 2024-11-18 13:50:58 +01:00
tiif
161b8c80d5
ci: test more things with miri (#6885) 2024-10-11 09:44:50 +02:00
Hayden Stainsby
c3a935541d
task: add task size to tracing instrumentation (#6881)
In Tokio, the futures for tasks are stored on the stack unless they are
explicitly boxed, either by the user or auto-boxed by Tokio when they
are especially large. Auto-boxing now also occurs in release mode
(since #6826).

Having very large futures can be problematic as it can cause a stack
overflow. In some cases it might be desireable to have smaller futures,
even if they are placed on the heap.

This change adds the size of the future driving an async task or the
function driving a blocking task to the tracing instrumentation. In the
case of a future that is auto-boxed by Tokio, both the final size as well
the original size before boxing is included.

To do this, a new struct `SpawnMeta` gets passed down from where a
future might get boxed to where the instrumentation is added. This
contains the task name (optionally) and the original future or function
size. If the `tokio_unstable` cfg flag and the `tracing` feature aren't both
enabled, then this struct will be zero sized, which is a small improvement
on the previous behavior of unconditionally passing down an `Option<&str>`
for the name.

This will make this information immediately available in Tokio Console,
and will enable new lints which will warn users if they have large futures
(just for async tasks).

We have some tests under the `tracing-instrumentation` crate which test
that the `size.bytes` and `original_size.bytes` fields are set correctly.

The minimal version of `tracing` required for Tokio has been bumped from
0.1.25 to 0.1.29 to get the `Value` impl on `Option<T>`. Given that the current
version is 0.1.40, this seems reasonable, especially given that Tracing's MSRV
is still lower than Tokio's in the latest version.
2024-10-08 10:51:03 +02:00
Nur
29cd6ec1ec
time: import Future trait from std instead of futures_core (#6884) 2024-10-07 14:13:09 +02:00
Motoyuki Kimura
09bc9a05e4
chore: use boxed slice if possible (#6858) 2024-09-25 19:45:28 +09:00
Eduardo Sánchez Muñoz
12b2567b95
chore: use poll_fn from std (#6810) 2024-09-05 09:54:06 +02:00
Timo
35f244ad09
chore: prepare tokio-util v0.7.12 (#6823) 2024-09-05 00:22:11 +02:00
Sarek Høverstad Skotåm
1166ecc2ac
config: enable full for tokio-util in the playground (#6818) 2024-09-03 20:34:20 +00:00
Havish Maka
11f66f43a0
chore: replace ready! with std::task::ready! (#6804) 2024-08-29 22:02:56 +02:00
Yotam Ofek
c9fad08466
codec: fix typo in the docs for Encoder::Error (#6800) 2024-08-27 09:08:22 +02:00
Rafael Bachmann
1ac8dff213
task: add AbortOnDropHandle type (#6786) 2024-08-20 10:58:04 +02:00
dpl
70569bd009
task: fix typo in TaskTracker docs (#6792) 2024-08-18 15:09:19 +02:00
Vrtgs
17819062e2
tokio: update code according to new MSRV (#6764) 2024-08-11 11:55:22 +02:00
Adam Cigánek
1e798d26ed
time: wake DelayQueue when removing last item (#6752) 2024-08-06 16:22:31 +02:00
Alice Ryhl
15cd5146d4
chore: increase MSRV to 1.70 (#6645) 2024-07-22 18:01:27 +00:00
Hai-Hsin
06582776a5
codec: fix length_delimited docs examples (#6638) 2024-06-23 13:52:51 +09:00
Eric Seppanen
ed4ddf443d
io: fix trait bounds on impl Sink for StreamReader (#6647)
This impl had a bound on `StreamReader<S, E>`; this is incorrect
because:
- The second generic parameter to `StreamReader` is not an error type;
  it's a buffer type.
- The `Stream` error type in `StreamReader` should not need to be the
  same as the `Sink` error type.

This "passthrough" `Sink` impl was effectively unusable because it
required the `Sink` error type be the same as the `StreamReader` buffer
type.

Resolve this by allowing the `StreamReader` buffer to be anything in
this impl.
2024-06-21 15:00:33 +02:00
Timo
53ea44bfb9
sync: add CancellationToken::run_until_cancelled (#6618) 2024-06-13 10:58:45 +02:00
Josh McKinney
3a6fdc0568
license: fix formatting and remove year in licenses (#6451) 2024-05-26 09:29:27 +00:00
Michael Scholten
daa89017da
ci: fix new clippy warnings (#6569) 2024-05-18 10:09:37 +02:00
Alice Ryhl
2a0df5fb05
ci: bump nightly to nightly-2024-05-05 (#6538) 2024-05-05 15:43:11 +00:00
Alice Ryhl
b652a4e64c
util: no default features for hashbrown (#6541) 2024-05-05 17:18:49 +02:00
Alice Ryhl
cdf9d997dc
chore: prepare tokio-util v0.7.11 (#6535) 2024-05-04 22:32:31 +02:00
LongYinan
9ed595767d
wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#6510) 2024-04-24 09:45:54 +02:00
Rafael Bachmann
be9328da75
chore: fix clippy warnings (#6466) 2024-04-08 20:44:18 +09:00
Quentin Perez
01ed7b55f7
net: add Apple visionOS support (#6465) 2024-04-06 18:09:43 +02:00
Jens Reidel
d298049299
codec: make tracing feature optional for codecs (#6434)
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2024-03-30 18:20:05 +01:00
Timo
1fcb77db34
io: add T: ?Sized to tokio_util::io::poll_read_buf (#6441) 2024-03-30 12:13:06 +00:00
Siech0
3936ebdfe4
chore: update CI to clippy 1.77 (#6443) 2024-03-30 15:49:42 +09:00
M.Amin Rayej
deff2524c3
util: document cancel safety of SinkExt::send and StreamExt::next (#6417) 2024-03-25 01:53:01 +03:30
M.Amin Rayej
8342e4b524
util: assert compatibility between LengthDelimitedCodec options (#6414) 2024-03-24 01:12:24 +03:30
Vincent Palancher
c9e75785c8
sync: remove 'static bound on impl Sink for PollSender (#6397)
In PR #5665, the `'static` bound has been removed on values sent into
`PollSender`. One of this bound was remaining on the `PollSender`
implementation of `Sink`. This patch removes it and adds some tests on
the `Sink` interface for `PollSender`.
2024-03-14 10:23:59 +01:00
M.Amin Rayej
e25d661e08
util: add examples for FramedRead and FramedWrite (#6310) 2024-02-11 02:38:44 +03:30
Patrick McGleenon
e392c4ff1e
chore: update CI to clippy 1.76 (#6334)
Co-authored-by: Rafael Bachmann <rafael.bachmann.93@gmail.com>
2024-02-10 10:45:40 +01:00
Owen Leung
131e7b4e49
ci: add spellchecking (#6297) 2024-01-29 10:53:43 +01:00
M.Amin Rayej
58edfc61ab
ci: verify that tests work with panic=abort (#6283) 2024-01-16 16:10:23 +01:00
Evan Rittenhouse
bfd7b08067
time: add FutureExt::timeout (#6276) 2024-01-16 09:51:38 +01:00
Taiki Endo
84c5674c60
ci: update clippy version to 1.75 (#6273) 2024-01-07 02:33:37 +09:00
Alice Ryhl
c7e7f203ee
chore: typographic improvements (#6262) 2024-01-03 18:01:27 +00:00
Eddy Oyieko
53ad102cf0
util: implement Sink for Either (#6239) 2023-12-22 18:23:04 +01:00
simlay
4c33ed33f6
net: add Apple watchOS support (#6176) 2023-11-29 21:16:48 +01:00
aliu
a8e8fa6681
time: add DelayQueue::deadline (#6163) 2023-11-23 18:20:26 +01:00
Alice Ryhl
944024e8eb
chore: update rust-version to 1.63 in all crates (#6126) 2023-11-04 09:07:22 +01:00
Fritz Rehde
593dbf55d1
docs: fix typos (#6118) 2023-10-30 15:17:46 +01:00