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/ › Threaded.zig › fileSyncWindows
fileSyncWindows
Threaded.fileSyncWindows
fn fileSyncWindows (userdata : ?*anyopaque , file : File ) File .SyncError !void
File
Code
fn fileSyncWindows (userdata : ?*anyopaque , file : File ) File .SyncError !void {
const t : *Threaded = @ptrCast (@alignCast (userdata ));
_ = t ;
var io_status_block : windows .IO_STATUS_BLOCK = undefined ;
const syscall : Syscall = try .start ();
while (true ) {
switch (windows .ntdll .NtFlushBuffersFile (file .handle , &io_status_block )) {
.SUCCESS => break syscall .finish (),
.CANCELLED => {
try syscall .checkCancel ();
continue ;
},
.INVALID_HANDLE => unreachable ,
.ACCESS_DENIED => return syscall .fail (error .AccessDenied ),
.UNEXPECTED_NETWORK_ERROR => return syscall .fail (error .InputOutput ),
else => |status | return syscall .unexpectedNtstatus (status ),
}
}
}