diff --git a/tokio/src/loom/mocked.rs b/tokio/src/loom/mocked.rs index cd996bc97..5a2b26a70 100644 --- a/tokio/src/loom/mocked.rs +++ b/tokio/src/loom/mocked.rs @@ -58,13 +58,6 @@ pub(crate) mod sync { } pub(crate) use loom::sync::*; - - pub(crate) mod atomic { - pub(crate) use loom::sync::atomic::*; - - // TODO: implement a loom version - pub(crate) type StaticAtomicU64 = std::sync::atomic::AtomicU64; - } } pub(crate) mod rand { diff --git a/tokio/src/loom/std/atomic_u64.rs b/tokio/src/loom/std/atomic_u64.rs index ff6002114..b1463fd4e 100644 --- a/tokio/src/loom/std/atomic_u64.rs +++ b/tokio/src/loom/std/atomic_u64.rs @@ -16,4 +16,4 @@ cfg_not_has_atomic_u64! { mod imp; } -pub(crate) use imp::{AtomicU64, StaticAtomicU64}; +pub(crate) use imp::AtomicU64; diff --git a/tokio/src/loom/std/mod.rs b/tokio/src/loom/std/mod.rs index 68e971616..d22883a2a 100644 --- a/tokio/src/loom/std/mod.rs +++ b/tokio/src/loom/std/mod.rs @@ -71,7 +71,7 @@ pub(crate) mod sync { pub(crate) mod atomic { pub(crate) use crate::loom::std::atomic_u16::AtomicU16; pub(crate) use crate::loom::std::atomic_u32::AtomicU32; - pub(crate) use crate::loom::std::atomic_u64::{AtomicU64, StaticAtomicU64}; + pub(crate) use crate::loom::std::atomic_u64::AtomicU64; pub(crate) use crate::loom::std::atomic_usize::AtomicUsize; pub(crate) use std::sync::atomic::{fence, AtomicBool, AtomicPtr, AtomicU8, Ordering}; diff --git a/tokio/src/runtime/task/id.rs b/tokio/src/runtime/task/id.rs index 3fcd9d2d4..e02128ccd 100644 --- a/tokio/src/runtime/task/id.rs +++ b/tokio/src/runtime/task/id.rs @@ -67,16 +67,15 @@ impl fmt::Display for Id { impl Id { pub(crate) fn next() -> Self { - use crate::loom::sync::atomic::Ordering::Relaxed; - use crate::loom::sync::atomic::StaticAtomicU64; + use crate::loom::sync::atomic::{AtomicU64, Ordering::Relaxed}; #[cfg(all(test, loom))] crate::loom::lazy_static! { - static ref NEXT_ID: StaticAtomicU64 = StaticAtomicU64::new(1); + static ref NEXT_ID: AtomicU64 = AtomicU64::new(1); } #[cfg(not(all(test, loom)))] - static NEXT_ID: StaticAtomicU64 = StaticAtomicU64::new(1); + static NEXT_ID: AtomicU64 = AtomicU64::new(1); loop { let id = NEXT_ID.fetch_add(1, Relaxed); diff --git a/tokio/src/runtime/thread_id.rs b/tokio/src/runtime/thread_id.rs index ef3928979..87b3fbe2d 100644 --- a/tokio/src/runtime/thread_id.rs +++ b/tokio/src/runtime/thread_id.rs @@ -5,9 +5,15 @@ pub(crate) struct ThreadId(NonZeroU64); impl ThreadId { pub(crate) fn next() -> Self { - use crate::loom::sync::atomic::{Ordering::Relaxed, StaticAtomicU64}; + use crate::loom::sync::atomic::{AtomicU64, Ordering::Relaxed}; - static NEXT_ID: StaticAtomicU64 = StaticAtomicU64::new(0); + #[cfg(all(test, loom))] + crate::loom::lazy_static! { + static ref NEXT_ID: AtomicU64 = AtomicU64::new(0); + } + + #[cfg(not(all(test, loom)))] + static NEXT_ID: AtomicU64 = AtomicU64::new(0); let mut last = NEXT_ID.load(Relaxed); loop {