1
0
mirror of https://github.com/golang/go synced 2024-11-19 12:34:47 -07:00

runtime: "fix" non-preemptible loop in TestParallelRWMutexReaders

TestParallelRWMutexReaders has a non-preemptible loop in it that can
deadlock if GC triggers. "Fix" it like we've fixed similar tests.

Updates #10958.

Change-Id: I13618f522f5ef0c864e7171ad2f655edececacd7
Reviewed-on: https://go-review.googlesource.com/73710
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Austin Clements 2017-10-25 18:36:12 -04:00
parent 4d8d138318
commit da95254d1a

View File

@ -12,6 +12,7 @@ package runtime_test
import (
"fmt"
. "runtime"
"runtime/debug"
"sync/atomic"
"testing"
)
@ -47,6 +48,10 @@ func doTestParallelReaders(numReaders int) {
func TestParallelRWMutexReaders(t *testing.T) {
defer GOMAXPROCS(GOMAXPROCS(-1))
// If runtime triggers a forced GC during this test then it will deadlock,
// since the goroutines can't be stopped/preempted.
// Disable GC for this test (see issue #10958).
defer debug.SetGCPercent(debug.SetGCPercent(-1))
doTestParallelReaders(1)
doTestParallelReaders(3)
doTestParallelReaders(4)