From ac613d1523744fdfb35417559e8498f4edd528b1 Mon Sep 17 00:00:00 2001 From: Amanieu d'Antras Date: Fri, 28 Jan 2022 13:06:24 +0000 Subject: [PATCH] Use core::hint::spin_loop instead of the deprecated spin_loop_hint. Bumps MSRV to 1.49.0 --- .github/workflows/rust.yml | 4 ++-- core/src/spinwait.rs | 4 ++-- core/src/thread_parker/generic.rs | 7 ++++--- 3 files changed, 8 insertions(+), 7 deletions(-) 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 }