github.com/cnboonhan/delve@v0.0.0-20230908061759-363f2388c2fb/_fixtures/goroutines-trace.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"sync"
     6  )
     7  
     8  func callme(i int, s string) int {
     9  	fmt.Println(s)
    10  	return i * i
    11  }
    12  
    13  func dostuff(wg *sync.WaitGroup, lbl string) {
    14  	defer wg.Done()
    15  	var j int
    16  	for i := 0; i < 10; i++ {
    17  		j += callme(i, lbl)
    18  	}
    19  	println(lbl, j)
    20  }
    21  
    22  func main() {
    23  	var wg sync.WaitGroup
    24  
    25  	for _, lbl := range []string{"one", "two", "three", "four", "five"} {
    26  		for i := 0; i < 10; i++ {
    27  			wg.Add(1)
    28  			go dostuff(&wg, lbl)
    29  		}
    30  	}
    31  	wg.Wait()
    32  }