aboutsummaryrefslogtreecommitdiff
path: root/test/goprint.go
diff options
context:
space:
mode:
authorRichard Miller <miller.research@gmail.com>2016-04-06 18:42:14 +0100
committerBrad Fitzpatrick <bradfitz@golang.org>2016-04-06 18:45:00 +0000
commita25e368f44941c22406b2f88535ec9e812fd4dba (patch)
tree692890d48f0821ddeca760a305e17725947b4840 /test/goprint.go
parent5176a4b39b4595e5d9025e7aaf19146c29b7e349 (diff)
downloadgo-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.go9
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)
+ }
}