From 3252579ad78a01dc21e63cd37f8eea37b1632ac1 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 25 Sep 2023 19:02:27 +0300 Subject: [PATCH] EDEADLK is regular non-warning error --- doc/news.texi | 8 ++++++++ run.go | 10 ++++------ usage.go | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/doc/news.texi b/doc/news.texi index 1013994..cdaac28 100644 --- a/doc/news.texi +++ b/doc/news.texi @@ -2,6 +2,14 @@ @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 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) diff --git a/usage.go b/usage.go index 6e43b57..6f6a5cc 100644 --- a/usage.go +++ b/usage.go @@ -24,7 +24,7 @@ import ( ) 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 -- 2.44.0