Zig 0.17.0-dev (Split by item)

Shortcut keys
?
Show these tips
S
Focus search field
Esc
Clear focus & close tips
U
Jump to source code
↑
Move up in search results
↓
Move down in search results
↵
Go to active search result
This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig standard library. Public Enum

Mutex

Public Enum
std.atomic.Mutex
pub const Mutex = enum(u8)

A lock-free single-owner resource.

Functions

pub fn tryLock(m: *Mutex) bool
pub fn unlock(m: *Mutex) void

File

atomic.zig:526
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);
    }
}