pub const Mutex = enum(u8)
A lock-free single-owner resource.
pub fn tryLock(m: *Mutex) bool
pub fn unlock(m: *Mutex) void
526 527 528 529 530 531 532 533 534 535 536 537 538
pub const Mutex = enum(u8) { unlocked, locked, pub fn tryLock(m: *Mutex) bool { return @cmpxchgStrong(Mutex, m, .unlocked, .locked, .acquire, .monotonic) == null; } pub fn unlock(m: *Mutex) void { assert(@atomicLoad(Mutex, m, .unordered) == .locked); @atomicStore(Mutex, m, .unlocked, .release); } }
A lock-free single-owner resource.