2347 Commits

Author SHA1 Message Date
Steven Fackler
fcb6d041b9
time: make test-util paused time fully deterministic (#3492)
The time driver stores an Instant internally used as a "base" for future
time calculations. Since this is generated as the Runtime is being
constructed, it previously always happened before the user had a chance
to pause time. The fractional-millisecond variations in the timing
around the runtime construction and time pause cause tests running
entirely in paused time to be very slightly deterministic, with the time
driver advancing time by 1 millisecond more or less depending on how the
sub-millisecond components of the `Instant`s involved compared.

To avoid this, there is now a new option on `runtime::Builder` which
will create a `Runtime` with time "instantly" paused. This, along with a
small change to have the time driver use the provided clock as the
source for its start time allow totally deterministic tests with paused
time.
2021-02-05 20:12:25 +01:00
Fuyang Liu
1c1e0e3fc9
tokio-stream: add wrapper for broadcast and watch (#3384) 2021-02-05 19:56:24 +01:00
Fuyang Liu
77ca8a934c
signal: make Signal::poll_recv method public (#3383)
Signed-off-by: Fuyang Liu <liufuyang@users.noreply.github.com>
2021-02-05 19:43:58 +01:00
surechen
3e5a0a7df6
runtime: fix a spelling mistake (#3503) 2021-02-04 12:30:31 +01:00
Artem Vorotnikov
cc97fb8a5f
Suppress deprecated warnings for spin_loop_hint (#3497)
* Suppress deprecated warnings for spin_loop_hint

* Update tokio/src/loom/std/mod.rs

Co-authored-by: Taiki Endo <te316e89@gmail.com>

* Update tokio/src/sync/task/atomic_waker.rs

Co-authored-by: Taiki Endo <te316e89@gmail.com>

* fmt

Co-authored-by: Taiki Endo <te316e89@gmail.com>
2021-02-01 15:55:21 +03:00
Alice Ryhl
60d88840f4
chore: prepare tokio-util v0.6.3 (#3488) tokio-util-0.6.3 2021-01-31 12:39:22 +01:00
Alice Ryhl
ee1f0c473f
util: remove tokio-stream dependency from tokio-util (#3487) 2021-01-31 11:08:40 +01:00
Rob Ede
06d6adf4b7
util: use ReusableBoxFuture for PollSemaphore (#3463) 2021-01-30 10:57:04 +01:00
Alice Ryhl
891aba5f71
util: add ReusableBoxFuture utility (#3464) 2021-01-30 00:03:01 +01:00
Carl Lerche
10c3b2f4a3
Merge branch 'tokio-1.1.x' 2021-01-29 14:13:24 -08:00
Markus Westerlind
6f988728bb
runtime: minimize the amount of duplicated code (#3416) 2021-01-29 21:45:29 +01:00
Carl Lerche
085f819f28
Merge branch 'tokio-1.0.x' into 'tokio-1.1.x' tokio-1.1.1 2021-01-28 20:23:50 -08:00
Carl Lerche
5d0a81fb91
io: fix memory leak during shutdown (#3477)
In some cases, a cycle is created between I/O driver wakers and the I/O
driver resource slab. This patch clears stored wakers when an I/O
resource is dropped, breaking the cycle.

Fixes #3228
tokio-1.0.3
2021-01-28 17:49:10 -08:00
Ivan Petkov
1f9765fb5f
process: add missing drop child stdin to wait() (#3421) 2021-01-28 23:08:44 +01:00
Jamie
225e8ea05f
sync: update RwLock doc to mention possibility of deadlock (#3389) 2021-01-28 16:38:49 +01:00
Alice Ryhl
cd7526873c
net: improve discoverability of TcpSocket (#3471) 2021-01-28 14:09:14 +01:00
vitalyd
4968f59af6
sync: update Sender::try_reserve doc (#3476) 2021-01-28 10:31:23 +01:00
Ivan Petkov
34f1d3d040
process: allow for ergonomically piping stdio of one child into another (#3466)
* Add `TryInto<Stdio>` impls for `ChildStd{in,out,err}` for ergonomic
  conversions into `std::process::Stdio` so callers can perform the
  conversion without needing to manipulate raw fds/handles directly
2021-01-27 01:12:54 +00:00
Ontonator
f13a9dd87a
tokio: update dates in CHANGELOG.md to 2021 (#3469) 2021-01-25 12:04:58 +01:00
Alice Ryhl
35b1a4d0b3
chore: prepare Tokio 1.1.0 (#3462) tokio-1.1.0 2021-01-22 23:05:37 +01:00
Alice Ryhl
6da5087b06
sync: improve bounded mpsc documentation (#3458) 2021-01-22 19:28:37 +01:00
Alice Ryhl
c6f08120d0
task: add LocalSet example (#3438) 2021-01-21 16:36:26 +01:00
Alice Ryhl
29bd5fad5c
sync: add link to PollSemaphore (#3456) 2021-01-21 15:20:55 +01:00
Alice Ryhl
f2a048d990
time: document that Sleep is not Unpin (#3457) 2021-01-21 15:19:17 +01:00
Alice Ryhl
198363f4f1
chore: prepare tokio-util 0.6.2 (#3453) tokio-util-0.6.2 2021-01-21 11:46:50 +01:00
vitalyd
5b7c7d565a
io: use a sealed trait to constrain VecWithInitialized (#3450) 2021-01-21 11:32:42 +01:00
Blas Rodriguez Irizar
117fc2ef3e
tests: fix ping pong saturation (#3390) 2021-01-21 11:02:40 +01:00
William Bain
c4f66ed121
util: fix panics on updating DelayQueue entries (#3270) 2021-01-21 10:56:44 +01:00
Oğuz Bilgener
7d5b12c509
sync: fix panic in broadcast::Receiver drop (#3434) 2021-01-20 23:12:51 +01:00
Alice Ryhl
cc0911aa64
net: update datagram docs on splitting (#3448) 2021-01-20 16:28:57 +01:00
Henry Gomersall
6f8a4d7a0b
docs: trivial typo fix (#3449) 2021-01-20 16:28:35 +01:00
Arve Knudsen
fdde5583f8
runtime: consolidate errors for context missing (#3441) 2021-01-20 14:29:13 +01:00
Rain
36cf95ab62
io: add ReadBuf::inner_mut (#3443) 2021-01-20 13:56:14 +01:00
Alice Ryhl
27b2d681e6
util: add pollable Semaphore (#3444) 2021-01-20 09:53:31 +01:00
Alice Ryhl
c1cf6b7504
io: keep track of initialized bytes in read_to_end (#3426) 2021-01-20 09:49:24 +01:00
Henry Gomersall
5402c948ee
io: clarify AsyncFd docs about changes of the inner fd (#3430) 2021-01-17 21:39:58 +01:00
Carl Lerche
2af9b755c5
Merge branch 'tokio-1.0.x' 2021-01-16 11:36:21 -08:00
Jacob O'Toole
7ac44a2d28
process: add documentation to process::Child fields (#3437) 2021-01-16 19:42:51 +01:00
Carl Lerche
3dc5f6c0ab
chore: release tokio v1.0.2 (#3429) 2021-01-15 15:05:38 -08:00
Alice Ryhl
0a7117fd9a
io: fix unsoundness in read_to_end (#3428) 2021-01-15 15:05:38 -08:00
Carl Lerche
5d35c907f6
chore: release tokio v1.0.2 (#3429) tokio-1.0.2 2021-01-14 16:37:40 -08:00
Alice Ryhl
ad8fb41103
io: fix unsoundness in read_to_end (#3428) 2021-01-14 15:09:07 -08:00
Nylonicious
ecc32d1dca
sync: add RwLock try_read and try_write methods (#3400)
Closes #2284
2021-01-14 15:05:07 -08:00
Markus Westerlind
204603b7de
rt: reduce duplicated code in task harness (#3314)
Task spawning is a common operation that results in a lot of instantiations
of the task code. Reducing the amount of generated code should lead to
faster compile times overall.

This patch extracts code that does not depend on a type parameter into
functions with fewer or no type parameters at all. Reducing the amount of
duplicated code.
2021-01-14 10:07:56 -08:00
Taiki Endo
30b4a7486a
chore: use CARGO_BIN_EXE instead of inspecting env::current_exe() (#3427) 2021-01-14 09:59:37 -08:00
Taiki Endo
0595902ba4
Update issue template (#3425)
`cargo tree` subcommand is available by default since Rust 1.44.
2021-01-14 23:09:05 +09:00
Lucio Franco
672be92a03
mpsc: Add Sender::try_reserve function (#3418)
* mpsc: Add `Sender::try_reserve` function

* Update tokio/src/sync/mpsc/bounded.rs

Co-authored-by: Alice Ryhl <alice@ryhl.io>

* Fix doc links

Co-authored-by: Alice Ryhl <alice@ryhl.io>
2021-01-13 14:24:23 -05:00
Alice Ryhl
766a89bf94
chore: prepare tokio-stream 0.1.2 (#3414) tokio-stream-0.1.2 2021-01-12 21:38:51 +01:00
David Kellum
8b9bb41809
docs: add tokio 1.0 policies to contributing guide (#3386) 2021-01-12 21:15:44 +01:00
Taiki Endo
d37486dd06
util: remove path deps (#3413)
* util: remove path deps

* ci: run clippy with --all-features

* ci: run tests with --all-features on FreeBSD CI
2021-01-13 00:19:57 +09:00