diff options
author | Andrei Vagin <avagin@google.com> | 2020-03-18 17:41:06 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-03-18 17:42:29 -0700 |
commit | c3cee7f5a433708a394cee4e89c223f80036f5d9 (patch) | |
tree | 8ec5afb315d9920fc1b59d1d972b96d8e8f93dc0 /pkg/gate | |
parent | a0fed7ea459833c93980dd6937a140db9bdcee8c (diff) |
Deflake third_party/gvisor/pkg/gate/gate_test
TestConcurrentAll executes 1000 goroutines which never sleep,
so they are not preempted by Go's runtime. In Go 1.14, async preemption
has been added, but the added runtime.Gosched() call will do nothing
wrong in this case too.
PiperOrigin-RevId: 301705712
Diffstat (limited to 'pkg/gate')
-rw-r--r-- | pkg/gate/gate_test.go | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/pkg/gate/gate_test.go b/pkg/gate/gate_test.go index 850693df8..316015e06 100644 --- a/pkg/gate/gate_test.go +++ b/pkg/gate/gate_test.go @@ -15,6 +15,7 @@ package gate_test import ( + "runtime" "testing" "time" @@ -165,6 +166,8 @@ func worker(g *gate.Gate, done *sync.WaitGroup) { if !g.Enter() { break } + // Golang before v1.14 doesn't preempt busyloops. + runtime.Gosched() g.Leave() } done.Done() |