code: func (b *Bundle) Join() error {
  	b.waitGroup.Wait()
  
  	// context.WithCancel requires that we arrange for this to be called
  	// eventually in order to avoid leaking resources. Since everything is done,
  	// to do so now is harmless.
  	b.cancel()
  
  	return b.firstError
  }
docs: // Wait for all previously-added operations to complete. Return nil if all
  // operations succeeded. Otherwise return the first error.
  //
  // Add must not be called concurrently with or after Join.