github.com/aaabigfish/gopkg@v1.1.0/syncx/errgroup/example_test.go (about)

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