mirror of https://github.com/golang/go.git
test: issue16016: use fewer goroutines for gccgo
For https://gcc.gnu.org/PR114453 Change-Id: If41d9fca6288b18ed47b0f21ff224c74ddb34958 Reviewed-on: https://go-review.googlesource.com/c/go/+/574536 Reviewed-by: Than McIntosh <thanm@google.com> Auto-Submit: Ian Lance Taylor <iant@golang.org> Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
d4cc35c4fd
commit
132f9fa9f8
|
|
@ -6,7 +6,10 @@
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import "time"
|
import (
|
||||||
|
"runtime"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
type T struct{}
|
type T struct{}
|
||||||
|
|
||||||
|
|
@ -24,8 +27,19 @@ type Q interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
var count = 10000
|
||||||
|
if runtime.Compiler == "gccgo" {
|
||||||
|
// On targets without split-stack libgo allocates
|
||||||
|
// a large stack for each goroutine. On 32-bit
|
||||||
|
// systems this test can run out of memory.
|
||||||
|
const intSize = 32 << (^uint(0) >> 63) // 32 or 64
|
||||||
|
if intSize < 64 {
|
||||||
|
count = 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var q Q = &R{&T{}}
|
var q Q = &R{&T{}}
|
||||||
for i := 0; i < 10000; i++ {
|
for i := 0; i < count; i++ {
|
||||||
go func() {
|
go func() {
|
||||||
defer q.Foo([]interface{}{"meow"})
|
defer q.Foo([]interface{}{"meow"})
|
||||||
time.Sleep(100 * time.Millisecond)
|
time.Sleep(100 * time.Millisecond)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue