fn fileSync(userdata: ?*anyopaque, file: File) File.SyncError!void
fn fileSync(userdata: ?*anyopaque, file: File) File.SyncError!void { const ev: *Evented = @ptrCast(@alignCast(userdata)); _ = ev; while (true) switch (c.errno(c.fsync(file.handle))) { .SUCCESS => return, .INTR => {}, .BADF => |err| return errnoBug(err), .INVAL => |err| return errnoBug(err), .ROFS => |err| return errnoBug(err), .IO => return error.InputOutput, .NOSPC => return error.NoSpaceLeft, .DQUOT => return error.DiskQuota, else => |err| return unexpectedErrno(err), }; }