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 › Threaded › batchCompleteBlockingWindows Private Function batchCompleteBlockingWindows Doc Source Private Function std.Io.Threaded.batchCompleteBlockingWindows
fn batchCompleteBlockingWindows (
b : *Io .Batch ,
operation_userdata : *WindowsBatchOperationUserdata ,
result : Io .Operation .Result ,
) void Params File Io/Threaded.zig: 3003
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026 fn batchCompleteBlockingWindows (
b : *Io .Batch ,
operation_userdata : *WindowsBatchOperationUserdata ,
result : Io .Operation .Result ,
) void {
const erased_userdata = operation_userdata .toErased ();
const pending : *Io .Operation .Storage .Pending = @fieldParentPtr ("userdata" , erased_userdata );
switch (pending .node .prev ) {
.none => b .pending .head = pending .node .next ,
else => |prev_index | b .storage [prev_index .toIndex ()].pending .node .next = pending .node .next ,
}
switch (pending .node .next ) {
.none => b .pending .tail = pending .node .prev ,
else => |next_index | b .storage [next_index .toIndex ()].pending .node .prev = pending .node .prev ,
}
const storage : *Io .Operation .Storage = @fieldParentPtr ("pending" , pending );
const index : Io .Operation .OptionalIndex = .fromIndex (storage - b .storage .ptr );
switch (b .completed .tail ) {
.none => b .completed .head = index ,
else => |tail_index | b .storage [tail_index .toIndex ()].completion .node .next = index ,
}
b .completed .tail = index ;
storage .* = .{ .completion = .{ .node = .{ .next = .none }, .result = result } };
}