From: Russ Cox Date: Thu, 27 Oct 2022 02:16:52 +0000 (-0400) Subject: cmd/link: remove unnecessary use of sync.Once alongside sync.Mutex X-Git-Tag: go1.20rc1~463 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0aeda5afe5972c1b5f76d5ee78cbc5c96474ca89;p=gostls13.git cmd/link: remove unnecessary use of sync.Once alongside sync.Mutex There does not seem to be any point to this sync.Once. I noticed because I was surveying uses of sync.Once to understand usage patterns. This seems to be a dreg left over from some earlier instance of the code. Change-Id: I99dd258d865a41d0e8f6cfa55887855e477fb9c2 Reviewed-on: https://go-review.googlesource.com/c/go/+/445755 Auto-Submit: Russ Cox TryBot-Result: Gopher Robot Run-TryBot: Russ Cox Reviewed-by: Cherry Mui --- diff --git a/src/cmd/link/internal/ld/errors.go b/src/cmd/link/internal/ld/errors.go index d6e8ff236d..b553d682d9 100644 --- a/src/cmd/link/internal/ld/errors.go +++ b/src/cmd/link/internal/ld/errors.go @@ -21,7 +21,6 @@ type symNameFn func(s loader.Sym) string // ErrorReporter is used to make error reporting thread safe. type ErrorReporter struct { loader.ErrorReporter - unresOnce sync.Once unresSyms map[unresolvedSymKey]bool unresMutex sync.Mutex SymName symNameFn @@ -29,11 +28,13 @@ type ErrorReporter struct { // errorUnresolved prints unresolved symbol error for rs that is referenced from s. func (reporter *ErrorReporter) errorUnresolved(ldr *loader.Loader, s, rs loader.Sym) { - reporter.unresOnce.Do(func() { reporter.unresSyms = make(map[unresolvedSymKey]bool) }) - - k := unresolvedSymKey{from: s, to: rs} reporter.unresMutex.Lock() defer reporter.unresMutex.Unlock() + + if reporter.unresSyms == nil { + reporter.unresSyms = make(map[unresolvedSymKey]bool) + } + k := unresolvedSymKey{from: s, to: rs} if !reporter.unresSyms[k] { reporter.unresSyms[k] = true name := ldr.SymName(rs)