X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=run.go;h=0bc3155661143249eef83b592e69d0506c980090;hb=3252579ad78a01dc21e63cd37f8eea37b1632ac1;hp=566f7adbab83e52a191ed2498777d26267630bff;hpb=aa8519a0804dec1d40c92d84198a87540d55d5a2;p=goredo.git diff --git a/run.go b/run.go index 566f7ad..0bc3155 100644 --- a/run.go +++ b/run.go @@ -242,15 +242,13 @@ func runScript(tgtOrig string, errs chan error, forced, traced bool) error { go func() { defer Jobs.Done() tracef(CLock, "LOCK_EX: %s", fdLock.Name()) - takeTries := 0 LockAgain: if err := unix.FcntlFlock(fdLock.Fd(), unix.F_SETLKW, &flock); err != nil { - time.Sleep(10 * time.Millisecond) - takeTries++ - if takeTries%10 == 0 { - log.Println(err, fdLock.Name(), "after", takeTries, "attempts") + if errors.Is(err, unix.EDEADLK) { + time.Sleep(10 * time.Millisecond) + goto LockAgain } - goto LockAgain + log.Fatalln(err, fdLock.Name()) } lockRelease() tracef(CDebug, "waiting done: %s", tgtOrig)