From 0aeda5afe5972c1b5f76d5ee78cbc5c96474ca89 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 26 Oct 2022 22:16:52 -0400 Subject: [PATCH] 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 --- src/cmd/link/internal/ld/errors.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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) -- 2.50.0