in pipeline/senders/dispatcher.go [67:81]
func (d *Dispatcher) Release() error {
return d.tracker.Release(func() error {
errors := make([]error, len(d.senders))
wg := sync.WaitGroup{}
wg.Add(len(d.senders))
for i, s := range d.senders {
go func(i int, s pipeline.Sender) {
errors[i] = s.Release()
wg.Done()
}(i, s)
}
wg.Wait()
return multierror.Append(nil, errors...).ErrorOrNil()
})
}