From: Gaurav Singh Date: Thu, 23 Jul 2020 23:27:05 +0000 (+0000) Subject: sync: fix goroutine leak for when TestMutexFairness times out X-Git-Tag: go1.16beta1~1360 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5a18e0b58ca2d08f3988018a8759207cb64e651a;p=gostls13.git sync: fix goroutine leak for when TestMutexFairness times out 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 Run-TryBot: Emmanuel Odeke TryBot-Result: Gobot Gobot --- diff --git a/src/sync/mutex_test.go b/src/sync/mutex_test.go index e61a853642..98c1bf2a5f 100644 --- a/src/sync/mutex_test.go +++ b/src/sync/mutex_test.go @@ -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)