Documentation

Overview

    Package errgroup provides synchronization, error propagation, and Context cancelation for groups of goroutines working on subtasks of a common task.

    Index

    Examples

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type Group

    type Group struct {
    	// contains filtered or unexported fields
    }

      A Group is a collection of goroutines working on subtasks that are part of the same overall task.

      A zero Group is valid and does not cancel on error.

      Example (JustErrors)

        JustErrors illustrates the use of a Group in place of a sync.WaitGroup to simplify goroutine counting and error handling. This example is derived from the sync.WaitGroup example at https://golang.org/pkg/sync/#example_WaitGroup.

        Output:
        
        
        Example (Parallel)

          Parallel illustrates the use of a Group for synchronizing a simple parallel task: the "Google Search 2.0" function from https://talks.golang.org/2012/concurrency.slide#46, augmented with a Context and error-handling.

          Output:
          
          web result for "golang"
          image result for "golang"
          video result for "golang"
          
          Example (Pipeline)

            Pipeline demonstrates the use of a Group to implement a multi-stage pipeline: a version of the MD5All function with bounded parallelism from https://blog.golang.org/pipelines.

            Output:
            
            

            func WithContext

            func WithContext(ctx context.Context) (*Group, context.Context)

              WithContext returns a new Group and an associated Context derived from ctx.

              The derived Context is canceled the first time a function passed to Go returns a non-nil error or the first time Wait returns, whichever occurs first.

              func (*Group) Go

              func (g *Group) Go(f func() error)

                Go calls the given function in a new goroutine.

                The first call to return a non-nil error cancels the group; its error will be returned by Wait.

                func (*Group) Wait

                func (g *Group) Wait() error

                  Wait blocks until all function calls from the Go method have returned, then returns the first non-nil error (if any) from them.

                  Source Files