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 › Group › addFiber Private Function addFiber Doc Source Private Function std.Io.Dispatch.Group.addFiber
fn addFiber (group : Group , ev : *Evented , fiber : *Fiber ) void Params File Io/Dispatch.zig: 1210
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224 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 );
}