fn fileDowngradeLock(userdata: ?*anyopaque, file: File) File.DowngradeLockError!void
fn fileDowngradeLock(userdata: ?*anyopaque, file: File) File.DowngradeLockError!void { const ev: *Evented = @ptrCast(@alignCast(userdata)); var sync: CancelRegion.Sync = try .init(ev); defer sync.deinit(ev); ev.flock(&sync, file.handle, .shared, .nonblocking) catch |err| switch (err) { error.WouldBlock => return errnoBug(.AGAIN), // File was not locked in exclusive mode. error.SystemResources => return errnoBug(.NOLCK), // Lock already obtained. error.FileLocksUnsupported => return errnoBug(.OPNOTSUPP), // Lock already obtained. else => |e| return e, }; }