gitlab.com/Raven-IO/raven-delve@v1.22.4/_fixtures/issue2113.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "runtime" 6 "sync" 7 ) 8 9 func coroutine(i int, start, finish *sync.WaitGroup) { 10 defer finish.Done() 11 12 j := i * 2 13 14 if i == 99 { 15 runtime.Breakpoint() 16 start.Done() 17 } else { 18 start.Wait() 19 } 20 21 fmt.Println("hello ", i, j) 22 fmt.Println("goodbye", i, j) 23 } 24 25 func main() { 26 i := 0 27 var start, finish sync.WaitGroup 28 start.Add(1) 29 for ; i < 100; i++ { 30 finish.Add(1) 31 go coroutine(i, &start, &finish) 32 } 33 finish.Wait() 34 println(i) 35 }