diff options
author | Richard Miller <miller.research@gmail.com> | 2016-04-06 18:42:14 +0100 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@golang.org> | 2016-04-06 18:45:00 +0000 |
commit | a25e368f44941c22406b2f88535ec9e812fd4dba (patch) | |
tree | 692890d48f0821ddeca760a305e17725947b4840 /test/goprint.go | |
parent | 5176a4b39b4595e5d9025e7aaf19146c29b7e349 (diff) | |
download | go-a25e368f44941c22406b2f88535ec9e812fd4dba.tar.gz go-a25e368f44941c22406b2f88535ec9e812fd4dba.zip |
test: make goprint.go wait for goroutine termination
Test goprint.go sometimes failed on a slow builder (plan9_arm)
because of timing dependency. Instead of sleeping for a fixed
time to allow the child goroutine to finish, wait explicitly for
child termination by calling runtime.NumGoroutine until the
returned value is 1.
Fixes #15097
Change-Id: Ib3ef5ec3c8277083c774542f48bcd4ff2f79efde
Reviewed-on: https://go-review.googlesource.com/21603
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'test/goprint.go')
-rw-r--r-- | test/goprint.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/test/goprint.go b/test/goprint.go index cdaccf4f79..7cf6230fc6 100644 --- a/test/goprint.go +++ b/test/goprint.go @@ -8,9 +8,14 @@ package main -import "time" +import ( + "runtime" + "time" +) func main() { go println(42, true, false, true, 1.5, "world", (chan int)(nil), []int(nil), (map[string]int)(nil), (func())(nil), byte(255)) - time.Sleep(100*time.Millisecond) + for runtime.NumGoroutine() > 1 { + time.Sleep(10*time.Millisecond) + } } |