]> Cypherpunks repositories - gostls13.git/commitdiff
sync: fix goroutine leak for when TestMutexFairness times out
authorGaurav Singh <gaurav1086@gmail.com>
Thu, 23 Jul 2020 23:27:05 +0000 (23:27 +0000)
committerEmmanuel Odeke <emm.odeke@gmail.com>
Fri, 14 Aug 2020 23:04:16 +0000 (23:04 +0000)
If the timeout triggers before writing to the done channel, the
goroutine will be blocked waiting for a corresponding read that’s
no longer existent, thus a goroutine leak. This change fixes that by
using a buffered channel instead.

Change-Id: I9cf4067a58bc5a729ab31e4426edd78bd359e8e0
GitHub-Last-Rev: a7d811a7be6d875175a894e53d474aa0034e7d2c
GitHub-Pull-Request: golang/go#40236
Reviewed-on: https://go-review.googlesource.com/c/go/+/242902
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/sync/mutex_test.go

index e61a853642fdd4a79e6e1e79e187853fbe6e28df..98c1bf2a5f9bc2fb7386c7eafd5b58907ae0a56e 100644 (file)
@@ -194,7 +194,7 @@ func TestMutexFairness(t *testing.T) {
                        }
                }
        }()
-       done := make(chan bool)
+       done := make(chan bool, 1)
        go func() {
                for i := 0; i < 10; i++ {
                        time.Sleep(100 * time.Microsecond)