mirror of
https://github.com/golang/go
synced 2024-11-19 15: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:
parent
4d8d138318
commit
da95254d1a
@ -12,6 +12,7 @@ package runtime_test
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
. "runtime"
|
. "runtime"
|
||||||
|
"runtime/debug"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
@ -47,6 +48,10 @@ func doTestParallelReaders(numReaders int) {
|
|||||||
|
|
||||||
func TestParallelRWMutexReaders(t *testing.T) {
|
func TestParallelRWMutexReaders(t *testing.T) {
|
||||||
defer GOMAXPROCS(GOMAXPROCS(-1))
|
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(1)
|
||||||
doTestParallelReaders(3)
|
doTestParallelReaders(3)
|
||||||
doTestParallelReaders(4)
|
doTestParallelReaders(4)
|
||||||
|
Loading…
Reference in New Issue
Block a user