diff --git a/bar.go b/bar.go index b6257be..e834a21 100644 --- a/bar.go +++ b/bar.go @@ -323,15 +323,12 @@ // if you need to adjust start time of all average based decorators // or after progress resume. func (b *Bar) DecoratorAverageAdjust(start time.Time) { - result := make(chan *sync.WaitGroup) - select { - case b.operateState <- func(s *bState) { - var wg sync.WaitGroup - s.decoratorAverageAdjust(start, &wg) - result <- &wg - }: - wg := <-result - wg.Wait() + select { + case b.operateState <- func(s *bState) { + for _, d := range s.averageDecorators { + d.AverageAdjust(start) + } + }: case <-b.ctx.Done(): } } @@ -591,17 +588,6 @@ } } -func (s bState) decoratorAverageAdjust(start time.Time, wg *sync.WaitGroup) { - wg.Add(len(s.averageDecorators)) - for _, d := range s.averageDecorators { - d := d - go func() { - d.AverageAdjust(start) - wg.Done() - }() - } -} - func (s bState) decoratorShutdownNotify(wg *sync.WaitGroup) { wg.Add(len(s.shutdownListeners)) for _, d := range s.shutdownListeners {