example_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package errgroup
  2. import (
  3. "context"
  4. )
  5. func fakeRunTask(ctx context.Context) error {
  6. return nil
  7. }
  8. func ExampleGroup_group() {
  9. g := Group{}
  10. g.Go(func(context.Context) error {
  11. return fakeRunTask(context.Background())
  12. })
  13. g.Go(func(context.Context) error {
  14. return fakeRunTask(context.Background())
  15. })
  16. if err := g.Wait(); err != nil {
  17. // handle err
  18. }
  19. }
  20. func ExampleGroup_ctx() {
  21. g := WithContext(context.Background())
  22. g.Go(func(ctx context.Context) error {
  23. return fakeRunTask(ctx)
  24. })
  25. g.Go(func(ctx context.Context) error {
  26. return fakeRunTask(ctx)
  27. })
  28. if err := g.Wait(); err != nil {
  29. // handle err
  30. }
  31. }
  32. func ExampleGroup_cancel() {
  33. g := WithCancel(context.Background())
  34. g.Go(func(ctx context.Context) error {
  35. return fakeRunTask(ctx)
  36. })
  37. g.Go(func(ctx context.Context) error {
  38. return fakeRunTask(ctx)
  39. })
  40. if err := g.Wait(); err != nil {
  41. // handle err
  42. }
  43. }
  44. func ExampleGroup_maxproc() {
  45. g := Group{}
  46. // set max concurrency
  47. g.GOMAXPROCS(2)
  48. g.Go(func(ctx context.Context) error {
  49. return fakeRunTask(context.Background())
  50. })
  51. g.Go(func(ctx context.Context) error {
  52. return fakeRunTask(context.Background())
  53. })
  54. if err := g.Wait(); err != nil {
  55. // handle err
  56. }
  57. }