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 library itself.
Zig › std/ › Io/ › Dispatch.zig › futexWait
futexWait
Dispatch.futexWait
fn futexWait (
userdata : ?*anyopaque ,
ptr : *const u32 ,
expected : u32 ,
timeout : Io .Timeout ,
) Io .Cancelable !void
File
Code
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 );
}