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 › futexWaitUncancelable
futexWaitUncancelable
Dispatch.futexWaitUncancelable
fn futexWaitUncancelable (userdata : ?*anyopaque , ptr : *const u32 , expected : u32 ) void
File
Code
fn futexWaitUncancelable (userdata : ?*anyopaque , ptr : *const u32 , expected : u32 ) void {
const ev : *Evented = @ptrCast (@alignCast (userdata ));
const futex = ev .futexForAddress (@intFromPtr (ptr ));
var waiter : Futex .Waiter = .{
.cancelable = .blocked ,
.futex = futex ,
.ptr = ptr ,
.expected = expected ,
.leeway = ev .leeway ,
};
ev .yield (.{ .futex_wait = &waiter });
waiter .cancelable .acknowledge (waiter .sleeper .fiber ) catch |err | switch (err ) {
error .Canceled => unreachable ,
};
}