bundle.go
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
}
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
}
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 }
// 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.
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 .