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/ › Uring.zig › batchAwaitAsync
batchAwaitAsync
Uring.batchAwaitAsync
fn batchAwaitAsync (userdata : ?*anyopaque , batch : *Io .Batch ) Io .Cancelable !void
File
Code
fn batchAwaitAsync (userdata : ?*anyopaque , batch : *Io .Batch ) Io .Cancelable !void {
const ev : *Evented = @ptrCast (@alignCast (userdata ));
var maybe_sync : CancelRegion .Sync .Maybe = .{ .cancel_region = .init () };
defer maybe_sync .deinit (ev );
ev .batchDrainSubmitted (&maybe_sync , batch , false ) catch |err | switch (err ) {
error .ConcurrencyUnavailable => unreachable ,
error .Canceled => |e | return e ,
};
maybe_sync .leaveSync (ev );
while (true ) {
batchDrainReady (batch ) catch |err | switch (err ) {
error .Timeout => unreachable ,
};
if (batch .completed .head != .none or batch .pending .head == .none ) return ;
ev .yield (null , .{ .batch_await = batch });
}
}