fn fileLock(userdata: ?*anyopaque, file: File, lock: File.Lock) File.LockError!void 3935
3936
3937
3938
3939
3940
3941
3942
3943fn fileLock(userdata: ?*anyopaque, file: File, lock: File.Lock) File.LockError!void {
const ev: *Evented = @ptrCast(@alignCast(userdata));
var sync: CancelRegion.Sync = try .init(ev);
defer sync.deinit(ev);
ev.flock(&sync, file.handle, lock, .blocking) catch |err| switch (err) {
error.WouldBlock => unreachable, // blocking
else => |e| return e,
};
}