diff --git a/bar.go b/bar.go index 1fe9ca1..cd55279 100644 --- a/bar.go +++ b/bar.go @@ -183,8 +183,7 @@ if s.current >= s.total { s.current = s.total s.completed = true - b.container.bwg.Add(1) - go b.forceRefresh(s.manualRefresh) + b.forceRefresh(s.manualRefresh) } else { s.triggerComplete = true } @@ -212,8 +211,7 @@ if triggerCompleteNow { s.current = s.total s.completed = true - b.container.bwg.Add(1) - go b.forceRefresh(s.manualRefresh) + b.forceRefresh(s.manualRefresh) } }: case <-b.done: @@ -231,8 +229,7 @@ if s.triggerComplete && s.current >= s.total { s.current = s.total s.completed = true - b.container.bwg.Add(1) - go b.forceRefresh(s.manualRefresh) + b.forceRefresh(s.manualRefresh) } }: case <-b.done: @@ -254,8 +251,7 @@ if s.triggerComplete && s.current >= s.total { s.current = s.total s.completed = true - b.container.bwg.Add(1) - go b.forceRefresh(s.manualRefresh) + b.forceRefresh(s.manualRefresh) } }: case <-b.done: @@ -283,8 +279,7 @@ if s.triggerComplete && s.current >= s.total { s.current = s.total s.completed = true - b.container.bwg.Add(1) - go b.forceRefresh(s.manualRefresh) + b.forceRefresh(s.manualRefresh) } }: case <-b.done: @@ -314,8 +309,7 @@ if s.triggerComplete && s.current >= s.total { s.current = s.total s.completed = true - b.container.bwg.Add(1) - go b.forceRefresh(s.manualRefresh) + b.forceRefresh(s.manualRefresh) } }: case <-b.done: @@ -353,8 +347,7 @@ } s.aborted = true s.dropOnComplete = drop - b.container.bwg.Add(1) - go b.forceRefresh(s.manualRefresh) + b.forceRefresh(s.manualRefresh) }: case <-b.done: } @@ -440,6 +433,11 @@ } func (b *Bar) forceRefresh(refreshCh chan interface{}) { + b.container.bwg.Add(1) + go b.forceRefreshImpl(refreshCh) +} + +func (b *Bar) forceRefreshImpl(refreshCh chan interface{}) { defer b.container.bwg.Done() var anyOtherRunning bool b.container.traverseBars(func(bar *Bar) bool {