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 › close Private Function close Doc Source Private Function std.Io.Uring.close
fn close (ev : *Evented , fd : fd_t ) void Params File Io/Uring.zig: 5321
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349 fn close (ev : *Evented , fd : fd_t ) void {
var cancel_region : CancelRegion = .initBlocked ();
defer cancel_region .deinit ();
const thread = cancel_region .awaitIoUring () catch |err | switch (err ) {
error .Canceled => unreachable , // blocked
};
thread .enqueue ().* = .{
.opcode = .CLOSE ,
.flags = 0 ,
.ioprio = 0 ,
.fd = fd ,
.off = 0 ,
.addr = 0 ,
.len = 0 ,
.rw_flags = 0 ,
.user_data = @intFromPtr (cancel_region .fiber ),
.buf_index = 0 ,
.personality = 0 ,
.splice_fd_in = 0 ,
.addr3 = 0 ,
.resv = 0 ,
};
ev .yield (null , .nothing );
switch (cancel_region .errno ()) {
.BADF => recoverableOsBugDetected (), // Always a race condition.
.INTR => {}, // This is still a success. See https://github.com/ziglang/zig/issues/2425
else => {},
}
}