pub mod sync {
pub use std::sync::{Arc, Mutex, Condvar};
pub mod atomic {
pub use std::sync::atomic::{AtomicPtr, AtomicBool, AtomicUsize, Ordering};
}
use std::cell::UnsafeCell;
pub struct CausalCell<T>(UnsafeCell<T>);
impl<T> CausalCell<T> {
pub fn new(data: T) -> CausalCell<T> {
CausalCell(UnsafeCell::new(data))
}
pub fn with_mut<F, R>(&self, f: F) -> R
where
F: FnOnce(*mut T) -> R,
{
f(self.0.get())
}
}
}
pub mod thread {
pub fn yield_now() {}
}