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 › futexWaitUncancelable Private Function futexWaitUncancelable Doc Source Private Function std.Io.Dispatch.futexWaitUncancelable
fn futexWaitUncancelable (userdata : ?*anyopaque , ptr : *const u32 , expected : u32 ) void Params userdata : ?*anyopaque ptr : *const u32 expected : u32 File Io/Dispatch.zig: 1662
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676 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 , // blocked
};
}