gitlab.com/Raven-IO/raven-delve@v1.22.4/_fixtures/goroutinestackprog.go (about) 1 package main 2 3 import "runtime" 4 5 const N = 10 6 7 func agoroutine(started chan<- struct{}, done chan<- struct{}, i int) { 8 started <- struct{}{} 9 done <- struct{}{} 10 } 11 12 var dummy int 13 14 func stacktraceme() { 15 dummy++ 16 return 17 } 18 19 func main() { 20 done := make(chan struct{}) 21 started := make(chan struct{}) 22 for i := 0; i < N; i++ { 23 go agoroutine(started, done, i) 24 } 25 for i := 0; i < N; i++ { 26 <-started 27 } 28 runtime.Gosched() 29 stacktraceme() 30 for i := 0; i < N; i++ { 31 <-done 32 } 33 n := 0 34 func1(n + 1) 35 } 36 37 func func1(n int) { 38 func2(n + 1) 39 } 40 41 func func2(n int) { 42 func3(n + 1) 43 } 44 45 func func3(n int) { 46 stacktraceme() 47 }