busy wait for macos

This commit is contained in:
Mwa
2026-03-17 17:23:00 +01:00
parent d04b6f35c3
commit f17b849da2

35
simu/src/wait.rs Normal file
View File

@@ -0,0 +1,35 @@
use std::sync::atomic::AtomicU32;
#[cfg(feature = "futex")]
use wait_on_address::AtomicWait;
pub trait WaitOnAtomic {
fn wait(&self, v: u32);
fn signal(&self);
}
#[cfg(feature = "futex")]
impl WaitOnAtomic for AtomicU32 {
fn wait(&self, v: u32) {
<AtomicU32 as AtomicWait>::wait(self, v);
}
fn signal(&self) {
self.notify_one();
}
}
#[cfg(not(feature = "futex"))]
impl WaitOnAtomic for AtomicU32 {
fn wait(&self, v: u32) {
while self.load(std::sync::atomic::Ordering::Acquire) == v {
use std::{thread::sleep, time::Duration};
sleep(Duration::from_micros(500));
}
}
fn signal(&self) {
//
}
}