Source file
test/fixedbugs/issue78081.go
1
2
3
4
5
6
7 package main
8
9 import "runtime"
10
11 func main() {
12 runtime.GOMAXPROCS(2)
13 c := make(chan bool)
14 for i := 0; i < 16; i++ {
15 go func() {
16 var b []byte
17 for range 100000 {
18 f(&b)
19 }
20 c <- true
21 }()
22 }
23 for i := 0; i < 16; i++ {
24 <-c
25 }
26 }
27
28 var n int = 64
29
30
31 func f(sink *[]byte) {
32 useStack(64)
33
34 x := make([]int, n, 128)
35 _ = append(x, make([]int, 128-n)...)
36
37 *sink = make([]byte, 1024)
38 }
39
40
41 func useStack(depth int) {
42 var b [128]int
43 if depth == b[depth%len(b)] {
44 return
45 }
46 useStack(depth - 1)
47 }
48
View as plain text