reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
93 return atomic_compare_exchange(&M, Unlocked, Locked) == Unlocked; 98 u32 V = atomic_compare_exchange(&M, Unlocked, Locked); 102 V = atomic_exchange(&M, Sleeping, memory_order_acquire); 104 syscall(SYS_futex, reinterpret_cast<uptr>(&M), FUTEX_WAIT_PRIVATE, Sleeping, 106 V = atomic_exchange(&M, Sleeping, memory_order_acquire); 111 if (atomic_fetch_sub(&M, 1U, memory_order_release) != Locked) { 112 atomic_store(&M, Unlocked, memory_order_release); 113 syscall(SYS_futex, reinterpret_cast<uptr>(&M), FUTEX_WAKE_PRIVATE, 1,