Braulio Valdivielso Martínez
54e6693dff
time: make timeout robust against budget-depleting tasks ( #4314 )
2021-12-15 11:59:21 +01:00
Zahari Dichev
4e3268d222
tracing: instrument more resources ( #4302 )
...
This PR adds instrumentation to more resources from the sync package. The new
instrumentation requires the `tokio_unstable` feature flag to enable.
2021-12-14 14:04:19 -08:00
Toby Lawrence
4b6bb1d9a7
chore(util): start v0.7 release cycle ( #4313 )
...
* chore(util): start v0.7 release cycle
Signed-off-by: Toby Lawrence <toby@nuclearfurnace.com>
2021-12-10 13:16:17 -05:00
Braulio Valdivielso Martínez
eb1af7f29c
io: make tokio::io::empty
cooperative ( #4300 )
...
Reads and buffered reads from a `tokio::io::empty` were always marked
as ready. That makes sense, given that there is nothing to wait for.
However, doing repeated reads on the `empty` could stall the event
loop and prevent other tasks from making progress.
This change uses tokio's coop system to yield control back to the
executor when appropriate.
Note that the issue that originally triggered this PR is not fixed
yet, because the `timeout` function will not poll the timer after
empty::read runs out of budget. A different change will be needed to
address that.
Refs: #4291
2021-12-10 11:08:49 +01:00
Toby Lawrence
0bc9160e25
chore: update labeler.yml to drop filepath prefixes ( #4308 )
...
- update labeler.yml to drop filepath prefixes
- make sure labeler enforces labels over lifetime of PR
2021-12-09 10:40:27 -05:00
Shin Seunghun
4c571b55b1
runtime: fix typo in the task modules ( #4306 )
2021-12-08 13:30:52 +01:00
Naruto210
60ba634d60
time: fix typo in tokio-time document ( #4304 )
2021-12-07 15:49:45 +01:00
Shin Seunghun
f73ed1fdba
runtime: fix typo ( #4303 )
2021-12-07 11:07:00 +01:00
Ivan Petkov
ee4b2ede83
process: add as_std()
method to Command
( #4295 )
2021-12-03 08:51:27 +01:00
Shin Seunghun
64da914d17
time: add doc links in entry doc ( #4293 )
2021-12-02 15:27:46 +01:00
kenmasu
d764ba5816
io: call tcp.set_nonblocking(true)
in AsyncFd
example. ( #4292 )
2021-12-02 11:01:23 +01:00
Alice Ryhl
65fb0210d5
tokio: add 1.14.x to LTS releases ( #4273 )
2021-11-24 09:18:50 +01:00
Axel Forsman
a77b2fbab2
io: extend AsyncFdReadyGuard
method lifetimes ( #4267 )
...
The implicit elided lifetimes of the `AsyncFd` references in return
types of methods on `AsyncFdReadyGuard` resolved to that of `&self`.
However that lifetime is smaller than `'a` since `self` contains an `&'a
AsyncFd` reference. This will not change so the change also does not
lessen future proofing.
2021-11-23 13:56:31 +01:00
oblique
347c0cdaba
time: add Interval::reset
method ( #4248 )
2021-11-23 13:51:07 +01:00
Shin Seunghun
2c0e5c9704
time: document missing timer panics ( #4247 )
2021-11-23 12:14:08 +01:00
omjadas
2a614fba0d
docs: document that parking_lot is enabled by full ( #4269 )
2021-11-23 12:11:42 +01:00
David Pedersen
3b339024f0
stream: impl Extend for StreamMap ( #4272 )
...
## Motivation
This allows `StreamMap` to be used with [`futures::stream::StreamExt::collect`][collect].
My use case is something like this:
```rust
let stream_map: StreamMap<_, _> = things
.into_iter()
.map(|thing| make_stream(thing)) // iterator of futures
.collect::<FuturesUnordered<_>>() // stream of streams
.collect::<StreamMap<_, _>>() // combine all the inner streams into one
.await;
async fn make_stream(thing: Thing) -> impl Stream { ... }
```
[collect]: https://docs.rs/futures/0.3.17/futures/stream/trait.StreamExt.html#method.collect
## Solution
Add `Extend` impl that delegates to the inner `Vec`.
2021-11-23 11:54:06 +01:00
Taiki Endo
1a423b3322
chore: remove doc URL from Cargo.toml ( #4251 )
...
https://doc.rust-lang.org/cargo/reference/manifest.html#the-documentation-field
> If no URL is specified in the manifest file, crates.io will
> automatically link your crate to the corresponding docs.rs page.
2021-11-23 11:53:32 +01:00
Taiki Endo
a8b662f643
ci: upgrade to new nightly ( #4268 )
2021-11-23 19:29:57 +09:00
Taiki Endo
cf3206842c
chore: bump MSRV to 1.46 ( #4254 )
2021-11-23 12:09:24 +09:00
Taiki Endo
8943e8aeef
macros: address remainging clippy::semicolon_if_nothing_returned warning ( #4252 )
2021-11-22 18:41:17 +09:00
Taiki Endo
fe770dc509
chore: fix newly added warnings ( #4253 )
2021-11-22 18:40:57 +09:00
Taiki Endo
8b6542fc3e
chore: update nix to 0.23 ( #4255 )
2021-11-22 06:13:14 +09:00
Alice Ryhl
b1afd95994
sync: elaborate on cross-runtime message passing ( #4240 )
2021-11-17 16:02:07 +01:00
Alice Ryhl
095b5dcf93
net: add connect_std -> TcpSocket doc alias ( #4219 )
2021-11-16 22:22:47 +01:00
Alice Ryhl
623c09c52c
chore: prepare tokio-macros 1.6.0 ( #4239 )
tokio-macros-1.6.0
2021-11-16 09:54:07 +01:00
Eliza Weisman
884a9a4b18
chore: prepare Tokio v1.14.0 ( #4234 )
...
# 1.14.0 (November 15, 2021)
### Fixed
- macros: fix compiler errors when using `mut` patterns in `select!`
([#4211 ])
- sync: fix a data race between `oneshot::Sender::send` and awaiting a
`oneshot::Receiver` when the oneshot has been closed ([#4226 ])
- sync: make `AtomicWaker` panic safe ([#3689 ])
- runtime: fix basic scheduler dropping tasks outside a runtime context
([#4213 ])
### Added
- stats: add `RuntimeStats::busy_duration_total` ([#4179 ], [#4223 ])
### Changed
- io: updated `copy` buffer size to match `std::io::copy` ([#4209 ])
### Documented
- io: rename buffer to file in doc-test ([#4230 ])
- sync: fix Notify example ([#4212 ])
[#4211 ]: https://github.com/tokio-rs/tokio/pull/4211
[#4226 ]: https://github.com/tokio-rs/tokio/pull/4226
[#3689 ]: https://github.com/tokio-rs/tokio/pull/3689
[#4213 ]: https://github.com/tokio-rs/tokio/pull/4213
[#4179 ]: https://github.com/tokio-rs/tokio/pull/4179
[#4223 ]: https://github.com/tokio-rs/tokio/pull/4223
[#4209 ]: https://github.com/tokio-rs/tokio/pull/4209
[#4230 ]: https://github.com/tokio-rs/tokio/pull/4230
[#4212 ]: https://github.com/tokio-rs/tokio/pull/4212
tokio-1.14.0
2021-11-15 16:39:09 -08:00
Eliza Weisman
e0be45e49b
Merge v1.13.1 ( #4236 )
...
Refs: #4235
2021-11-15 16:09:33 -08:00
Eliza Weisman
26f0938bf3
oneshot: document UnsafeCell invariants ( #4229 )
...
Depends on #4226
## Motivation
Currently, the safety invariants and synchronization strategy used in
`tokio::sync::oneshot` are not particularly obvious, especially to a new
reader. It would be nice to better document this code to make these
invariants clearer.
## Solution
This branch adds `SAFETY:` comments to the `oneshot` channel
implementation. In particular, I've focused on documenting the
invariants around when the inner `UnsafeCell` that stores the value can
be accessed by the sender and receiver sides of the channel.
I still want to take a closer look at when the waker cells can be set,
and I'd like to add more documentation there in a follow-up branch.
Signed-off-by: Eliza Weisman <eliza@buoyant.io>
2021-11-15 12:46:12 -08:00
Eliza Weisman
4b78ed4d68
sync: fix racy UnsafeCell
access on a closed oneshot ( #4226 )
2021-11-14 18:03:41 +01:00
Shin Seunghun
79d7a625d0
io: rename buffer to file in doc-test ( #4230 )
2021-11-13 11:31:42 +01:00
Alice Ryhl
ccf855ec24
stats: only expose busy_duration_total
( #4223 )
2021-11-11 21:53:29 +01:00
Alice Ryhl
579f61106d
ci: check for minimal versions with tokio_unstable ( #4224 )
2021-11-11 21:53:15 +01:00
Alice Ryhl
f45320a9c0
stats: add busy_duration stats ( #4179 )
2021-11-08 14:59:36 -05:00
Alice Ryhl
1f8105588c
runtime: drop basic scheduler tasks inside context ( #4213 )
2021-11-02 23:25:34 +01:00
Alice Ryhl
94ee305741
macros: fix mut patterns in select!
macro ( #4211 )
2021-11-02 18:05:24 +01:00
Alice Ryhl
669bc4476e
io: update copy buffer size ( #4209 )
2021-11-02 16:22:45 +01:00
Alice Ryhl
1265d0c5dc
sync: fix Notify example ( #4212 )
2021-11-02 16:22:30 +01:00
John-John Tedro
09b770c5db
sync: make AtomicWaker
panic safe ( #3689 )
2021-11-02 13:41:36 +01:00
Alice Ryhl
d1a400912e
chore: prepare tokio-stream 0.1.8 ( #4198 )
tokio-stream-0.1.8
2021-10-29 18:34:43 +02:00
Alice Ryhl
aa03622cf3
chore: prepare tokio-util 0.6.9 ( #4199 )
tokio-util-0.6.9
2021-10-29 18:34:23 +02:00
Alice Ryhl
ac89d8926d
chore: prepare Tokio v1.13.0 ( #4196 )
tokio-1.13.0
2021-10-29 18:34:13 +02:00
Alice Ryhl
e184205421
chore: prepare tokio-macros 1.6.0 ( #4197 )
tokio-macros-1.5.1
2021-10-29 18:33:40 +02:00
sander2
44a1aad8df
task: allocate callback on heap immediately in debug mode ( #4203 )
2021-10-29 17:34:25 +02:00
Alice Ryhl
75c07770bf
sync: make watch::send_replace
infallible ( #4195 )
2021-10-27 14:05:25 +02:00
Colin Walters
268ed5e73e
task: add more tips + links to spawn_blocking
docs ( #4150 )
2021-10-26 20:57:57 +02:00
Bhargav
0c68b89452
codec: update stream impl for Framed to return None
after Err
( #4166 )
2021-10-26 16:56:15 +02:00
Alice Ryhl
827694a9e3
ci: fix nightly version for cirrus ci ( #4200 )
2021-10-26 16:53:05 +02:00
Alice Ryhl
d15e5fad16
ci: split FreeBSD into two jobs ( #4194 )
2021-10-26 15:44:00 +02:00
Alice Ryhl
9cb495cdb8
tokio: upgrade to new nightly for CI ( #4193 )
2021-10-26 14:08:11 +02:00