We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 60ad490 commit 69a4d77Copy full SHA for 69a4d77
library/std/src/sys/pal/xous/alloc.rs
@@ -46,15 +46,18 @@ unsafe impl GlobalAlloc for System {
46
}
47
48
mod lock {
49
- use crate::sync::atomic::{AtomicI32, Ordering::SeqCst};
+ use crate::sync::atomic::{
50
+ AtomicI32,
51
+ Ordering::{Acquire, Release},
52
+ };
53
54
static LOCKED: AtomicI32 = AtomicI32::new(0);
55
56
pub struct DropLock;
57
58
pub fn lock() -> DropLock {
59
loop {
- if LOCKED.swap(1, SeqCst) == 0 {
60
+ if LOCKED.swap(1, Acquire) == 0 {
61
return DropLock;
62
63
crate::os::xous::ffi::do_yield();
@@ -63,7 +66,7 @@ mod lock {
66
64
67
impl Drop for DropLock {
65
68
fn drop(&mut self) {
- let r = LOCKED.swap(0, SeqCst);
69
+ let r = LOCKED.swap(0, Release);
70
debug_assert_eq!(r, 1);
71
72
0 commit comments