X-Git-Url: http://www.git.cypherpunks.ru/?p=goredo.git;a=blobdiff_plain;f=main.go;h=5bb158b9f3438a137047ae16202241b30e2bdf2f;hp=f87bdac0d7f97295c88664af3706c20211e2f5be;hb=f0f007ed9bb046289965d2a7e64f215e4a50a441;hpb=0030b3e73152bf9d9ad3e435fa42e607c7865321 diff --git a/main.go b/main.go index f87bdac..5bb158b 100644 --- a/main.go +++ b/main.go @@ -227,7 +227,11 @@ func main() { if v := os.Getenv(EnvOODTgtsFd); v != "" { fd := mustParseFd(v, EnvOODTgtsFd) fdLock := mustParseFd(v, EnvOODTgtsLockFd) - if err = unix.Flock(int(fdLock.Fd()), unix.LOCK_EX); err != nil { + flock := unix.Flock_t{ + Type: unix.F_WRLCK, + Whence: io.SeekStart, + } + if err = unix.FcntlFlock(fdLock.Fd(), unix.F_SETLKW, &flock); err != nil { log.Fatalln(err) } if _, err = fd.Seek(0, io.SeekStart); err != nil { @@ -237,7 +241,8 @@ func main() { if err != nil { log.Fatalln(err) } - if err = unix.Flock(int(fdLock.Fd()), unix.LOCK_UN); err != nil { + flock.Type = unix.F_UNLCK + if err = unix.FcntlFlock(fdLock.Fd(), unix.F_SETLK, &flock); err != nil { log.Fatalln(err) } OODTgts = map[string]struct{}{}