]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: remove unnecessary use of sync.Once alongside sync.Mutex
authorRuss Cox <rsc@golang.org>
Thu, 27 Oct 2022 02:16:52 +0000 (22:16 -0400)
committerGopher Robot <gobot@golang.org>
Wed, 2 Nov 2022 14:38:08 +0000 (14:38 +0000)
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 <rsc@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/cmd/link/internal/ld/errors.go

index d6e8ff236dfd7ed86fec5bf763f4c09a9abfc970..b553d682d94c6f0e84dea987b0fa79648554474f 100644 (file)
@@ -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)