//go:build unix
package assets
import (
"os"
"syscall"
)
func lockPath(p string) (func(), error) {
f, err := os.OpenFile(p, os.O_RDWR|os.O_CREATE, 0o600)
if err != nil {
return nil, err
}
if err := syscall.Flock(int(f.Fd()), syscall.LOCK_EX); err != nil {
f.Close()
return nil, err
}
return func() {
syscall.Flock(int(f.Fd()), syscall.LOCK_UN)
f.Close()
}, nil
}