doc/news.texi | 8 ++++++++ run.go | 10 ++++------ usage.go | 2 +- diff --git a/doc/news.texi b/doc/news.texi index f097faf75aee4889dd466ef06a9081d5fe65902c98304bcc0956456ef30c4d4a..fdcb09418bce18c5805123796022458bb2672a1be97f7b2f0118532b42bcb8d9 100644 --- a/doc/news.texi +++ b/doc/news.texi @@ -2,6 +2,14 @@ @node News @cindex news @unnumbered News +@anchor{Release 1_32_0} +@section Release 1.32.0 +@itemize +@item + Omit printing of the @code{resource deadlock avoided} warning when + trying to take the lock. +@end itemize + @anchor{Release 1_31_0} @section Release 1.31.0 @itemize diff --git a/run.go b/run.go index 3b7e57f5266168cd52b57aacf9ca7f00ca4370f77239f82cd0bb7f936e64a46b..aedcb597dbb1846695ab0d062b1411f588eb2774d5fd8f91cedad6e1e17e4631 100644 --- a/run.go +++ b/run.go @@ -242,15 +242,13 @@ } 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) diff --git a/usage.go b/usage.go index bbf4aaad2bbaa8063e60a5dcad937e510e0fa89171edf1963fb35404e88d59e9..16ef48d83494034a3b20ef870be6eb9813904f90caa1ddfc5563b8b671ed6790 100644 --- a/usage.go +++ b/usage.go @@ -24,7 +24,7 @@ "os" ) const ( - Version = "1.31.0" + Version = "1.32.0" Warranty = `Copyright (C) 2020-2023 Sergey Matveev This program is free software: you can redistribute it and/or modify