fn fileDowngradeLock(userdata: ?*anyopaque, file: File) File.DowngradeLockError!void userdata: ?*anyopaquefile: File3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982fn 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,
};
}