diff options
author | Carl Lerche <me@carllerche.com> | 2020-03-05 10:31:37 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-05 10:31:37 -0800 |
commit | a78b1c65ccfb9692ca5d3ed8ddde934f40091d83 (patch) | |
tree | c88e547d6913b204f590aea54dc03328ee3cb094 /tokio/src/park | |
parent | 5ede2e4d6b2f732e83e33f9693682dffc6c9f5b0 (diff) |
rt: cleanup and simplify scheduler (scheduler v2.5) (#2273)
A refactor of the scheduler internals focusing on simplifying and
reducing unsafety. There are no fundamental logic changes.
* The state transitions of the core task component are refined and
reduced.
* `basic_scheduler` has most unsafety removed.
* `local_set` has most unsafety removed.
* `threaded_scheduler` limits most unsafety to its queue implementation.
Diffstat (limited to 'tokio/src/park')
-rw-r--r-- | tokio/src/park/thread.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tokio/src/park/thread.rs b/tokio/src/park/thread.rs index 12ef9717..a8cdf143 100644 --- a/tokio/src/park/thread.rs +++ b/tokio/src/park/thread.rs @@ -129,6 +129,10 @@ impl Inner { return; } + if dur == Duration::from_millis(0) { + return; + } + let m = self.mutex.lock().unwrap(); match self.state.compare_exchange(EMPTY, PARKED, SeqCst, SeqCst) { |