summaryrefslogtreecommitdiff
path: root/test/goprint.go
blob: d44b259081e6801fe4d40b88697e5e5b94d6aa15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// run

// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Test that println can be the target of a go statement.

package main

import (
	"log"
	"runtime"
	"time"
)

func main() {
	numg0 := runtime.NumGoroutine()
	deadline := time.Now().Add(10 * time.Second)
	go println(42, true, false, true, 1.5, "world", (chan int)(nil), []int(nil), (map[string]int)(nil), (func())(nil), byte(255))
	for {
		numg := runtime.NumGoroutine()
		if numg > numg0 {
			if time.Now().After(deadline) {
				log.Fatalf("%d goroutines > initial %d after deadline", numg, numg0)
			}
			runtime.Gosched()
			continue
		}
		break
	}
}