Skip to content

Instantly share code, notes, and snippets.

@YasushiKobayashi
Created April 17, 2018 02:18
Show Gist options
  • Save YasushiKobayashi/ea6bdeb41d4968e73b363c48a869be27 to your computer and use it in GitHub Desktop.
Save YasushiKobayashi/ea6bdeb41d4968e73b363c48a869be27 to your computer and use it in GitHub Desktop.
errgroup
package main
import (
"fmt"
"golang.org/x/sync/errgroup"
)
func main() {
fmt.Println("vim-go")
eg := errgroup.Group{}
for i := 0; i < 10; i++ {
i := i
eg.Go(func() error {
fmt.Println(i)
return fmt.Errorf("err")
fmt.Println(i)
if i == 9 {
return fmt.Errorf("err")
}
return nil
})
}
fmt.Println("wait")
if err := eg.Wait(); err != nil {
fmt.Println(err)
}
fmt.Println("end")
}
@YasushiKobayashi
Copy link
Author

~/g/s/test ❯❯❯ go run main.go
vim-go
wait
9
2
3
4
5
6
7
8
1
0
err
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment