#![feature(allocator_internals)]
#![feature(allow_internal_unsafe)]
#![feature(allow_internal_unstable)]
+#![feature(atomic_mut_ptr)]
#![feature(arbitrary_self_types)]
#![feature(array_error_internals)]
#![feature(asm)]
//
// unsafe {
// let r = core::arch::wasm32::i32_atomic_wait(
- // &LOCKED as *const AtomicI32 as *mut i32,
+ // LOCKED.as_mut_ptr(),
// 1, // expected value
// -1, // timeout
// );
//
// unsafe {
// core::arch::wasm32::atomic_notify(
- // &LOCKED as *const AtomicI32 as *mut i32,
+ // LOCKED.as_mut_ptr(),
// 1, // only one thread
// );
// }
#[inline]
fn ptr(&self) -> *mut i32 {
assert_eq!(mem::size_of::<usize>(), mem::size_of::<i32>());
- &self.cnt as *const AtomicUsize as *mut i32
+ self.cnt.as_mut_ptr() as *mut i32
}
}
#[inline]
fn ptr(&self) -> *mut i32 {
assert_eq!(mem::size_of::<usize>(), mem::size_of::<i32>());
- &self.locked as *const AtomicUsize as *mut isize as *mut i32
+ self.locked.as_mut_ptr() as *mut i32
}
}
#[inline]
fn ptr(&self) -> *mut i32 {
- &self.owner as *const AtomicU32 as *mut i32
+ self.owner.as_mut_ptr() as *mut i32
}
}