diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index bace0eb7..8a164d6c 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -16,11 +16,11 @@ jobs: strategy: matrix: os: [ubuntu, macos, windows] - channel: [1.41.0, stable, beta, nightly] + channel: [1.49.0, stable, beta, nightly] feature: [arc_lock, serde, deadlock_detection] exclude: - feature: deadlock_detection - channel: '1.41.0' + channel: '1.48.0' include: - channel: nightly feature: nightly diff --git a/core/src/spinwait.rs b/core/src/spinwait.rs index ad0327a3..a57f4c10 100644 --- a/core/src/spinwait.rs +++ b/core/src/spinwait.rs @@ -6,14 +6,14 @@ // copied, modified, or distributed except according to those terms. use crate::thread_parker; -use std::sync::atomic::spin_loop_hint; +use core::hint::spin_loop; // Wastes some CPU time for the given number of iterations, // using a hint to indicate to the CPU that we are spinning. #[inline] fn cpu_relax(iterations: u32) { for _ in 0..iterations { - spin_loop_hint() + spin_loop() } } diff --git a/core/src/thread_parker/generic.rs b/core/src/thread_parker/generic.rs index 6d9963b9..990bcb7f 100644 --- a/core/src/thread_parker/generic.rs +++ b/core/src/thread_parker/generic.rs @@ -8,7 +8,8 @@ //! A simple spin lock based thread parker. Used on platforms without better //! parking facilities available. -use core::sync::atomic::{spin_loop_hint, AtomicBool, Ordering}; +use core::sync::atomic::{AtomicBool, Ordering}; +use core::hint::spin_loop; use std::thread; use std::time::Instant; @@ -42,7 +43,7 @@ impl super::ThreadParkerT for ThreadParker { #[inline] unsafe fn park(&self) { while self.parked.load(Ordering::Acquire) != false { - spin_loop_hint(); + spin_loop(); } } @@ -52,7 +53,7 @@ impl super::ThreadParkerT for ThreadParker { if Instant::now() >= timeout { return false; } - spin_loop_hint(); + spin_loop(); } true }