//go:build linux || darwin package artifacts import ( "errors" "os" "golang.org/x/sys/unix" ) func acquireHeldFileLock(file *os.File) error { err := unix.Flock(int(file.Fd()), unix.LOCK_EX|unix.LOCK_NB) if errors.Is(err, unix.EWOULDBLOCK) || errors.Is(err, unix.EAGAIN) { return errHeldLockConflict } return err } func releaseHeldFileLock(file *os.File) error { return unix.Flock(int(file.Fd()), unix.LOCK_UN) }