From 30d3d50e1d78db4092464930dd5d476ccd19bf34 Mon Sep 17 00:00:00 2001 From: Alice Ryhl Date: Fri, 17 Sep 2021 23:32:26 +0200 Subject: [PATCH] mpsc: use spin_loop_hint instead of yield_now --- tokio/src/loom/std/mod.rs | 15 ++++++++++++++- tokio/src/sync/mpsc/block.rs | 6 ------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/tokio/src/loom/std/mod.rs b/tokio/src/loom/std/mod.rs index b29cbeeb89c..8b6e8bc19d7 100644 --- a/tokio/src/loom/std/mod.rs +++ b/tokio/src/loom/std/mod.rs @@ -93,4 +93,17 @@ pub(crate) mod sys { } } -pub(crate) use std::thread; +pub(crate) mod thread { + #[inline] + pub(crate) fn yield_now() { + // TODO: once we bump MSRV to 1.49+, use `hint::spin_loop` instead. + #[allow(deprecated)] + std::sync::atomic::spin_loop_hint(); + } + + #[allow(unused_imports)] + pub(crate) use std::thread::{ + current, panicking, park, park_timeout, sleep, spawn, Builder, JoinHandle, LocalKey, + Result, Thread, ThreadId, + }; +} diff --git a/tokio/src/sync/mpsc/block.rs b/tokio/src/sync/mpsc/block.rs index 7a0873bc4ac..6e7b70058c9 100644 --- a/tokio/src/sync/mpsc/block.rs +++ b/tokio/src/sync/mpsc/block.rs @@ -343,13 +343,7 @@ impl Block { Err(curr) => curr, }; - #[cfg(all(test, loom))] crate::loom::thread::yield_now(); - - // TODO: once we bump MSRV to 1.49+, use `hint::spin_loop` instead. - #[cfg(not(all(test, loom)))] - #[allow(deprecated)] - std::sync::atomic::spin_loop_hint(); } } }