]> Cypherpunks repositories - gostls13.git/commitdiff
log: avoid leaking goroutines in TestOutputRace
authorBryan C. Mills <bcmills@google.com>
Fri, 21 Apr 2023 15:42:20 +0000 (11:42 -0400)
committerGopher Robot <gobot@golang.org>
Fri, 21 Apr 2023 20:04:37 +0000 (20:04 +0000)
Leaked goroutines are the only explanation I can think of for excess
allocs in TestDiscard, and TestOutputRace is the only place I can see
where the log package leaks goroutines. Let's fix that leak and see if
it eliminates the TestDiscard flakes.

Fixes #58797 (maybe).

Change-Id: I2d54dcba3eb52bd10a62cd1c380131add6a2f651
Reviewed-on: https://go-review.googlesource.com/c/go/+/487356
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
src/log/log_test.go

index b3b63d4e223db57f29ad09a670835d2b7682d4ea..c7fa78f5ad95be6ddfa7fc8a7af93c19f87106d6 100644 (file)
@@ -109,12 +109,16 @@ func TestNonNewLogger(t *testing.T) {
 func TestOutputRace(t *testing.T) {
        var b bytes.Buffer
        l := New(&b, "", 0)
+       var wg sync.WaitGroup
+       wg.Add(100)
        for i := 0; i < 100; i++ {
                go func() {
+                       defer wg.Done()
                        l.SetFlags(0)
                        l.Output(0, "")
                }()
        }
+       wg.Wait()
 }
 
 func TestFlagAndPrefixSetting(t *testing.T) {