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 › Uring › Group › addFiber Private Function addFiber Doc Source Private Function std.Io.Uring.Group.addFiber
fn addFiber (group : Group , ev : *Evented , fiber : *Fiber ) void Params File Io/Uring.zig: 1620
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634 fn addFiber (group : Group , ev : *Evented , fiber : *Fiber ) void {
group .lock (ev );
defer group .unlock (ev );
const list_ptr = group .listPtr ();
const list = @atomicLoad (List , list_ptr , .monotonic );
if (list .cancel_requested ) fiber .cancel_status = .{ .requested = true , .awaiting = .nothing };
const old_head = list .fibers .unpack ();
if (old_head ) |head | head .link .group .prev = fiber ;
fiber .link .group .next = old_head ;
@atomicStore (List , list_ptr , .{
.cancel_requested = list .cancel_requested ,
.awaiter_delayed = list .awaiter_delayed ,
.fibers = .pack (fiber ),
}, .monotonic );
}