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

once_t

Public Enum
std.c.darwin.dispatch.once_t
pub const once_t = enum(isize)

Functions

pub inline fn once(predicate: *once_t, context: ?*anyopaque, function: function_t) void

File

c/darwin/dispatch.zig:36
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
pub const once_t = enum(isize) {
    init = 0,
    done = -1,
    _,

    pub inline fn once(predicate: *once_t, context: ?*anyopaque, function: function_t) void {
        if (predicate.* != .done) {
            @branchHint(.unlikely);
            once_f(predicate, context, function);
        } else asm volatile ("" ::: .{ .memory = true });
        switch (builtin.mode) {
            .debug, .safe => {},
            .fast, .small => if (predicate.* != .done) unreachable,
        }
    }
}