Zig 0.17.0-dev (Split by item) 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.
std › Io › Dispatch › futexWait Private Function futexWait Doc Source Private Function std.Io.Dispatch.futexWait
fn futexWait (
userdata : ?*anyopaque ,
ptr : *const u32 ,
expected : u32 ,
timeout : Io .Timeout ,
) Io .Cancelable !void Params userdata : ?*anyopaque ptr : *const u32 expected : u32 timeout : Io .Timeout File Io/Dispatch.zig: 1642
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660 fn futexWait (
userdata : ?*anyopaque ,
ptr : *const u32 ,
expected : u32 ,
timeout : Io .Timeout ,
) Io .Cancelable !void {
const ev : *Evented = @ptrCast (@alignCast (userdata ));
const futex = ev .futexForAddress (@intFromPtr (ptr ));
var waiter : Futex .Waiter = .{
.cancelable = .{ .queue = futex .queue , .cancel = &Futex .Waiter .canceled },
.futex = futex ,
.ptr = ptr ,
.expected = expected ,
.timeout = ev .timeFromTimeout (timeout ),
.leeway = ev .leeway ,
};
ev .yield (.{ .futex_wait = &waiter });
try waiter .cancelable .acknowledge (waiter .sleeper .fiber );
}