diff --git a/bar.go b/bar.go index b034b42..6cfd9c9 100644 --- a/bar.go +++ b/bar.go @@ -275,10 +275,25 @@ } if drop { b.container.dropBar(b) - } else { - b.container.refreshCh <- time.Now() - } - b.cancel() + b.cancel() + return + } + go func() { + var uncompleted int + b.container.traverseBars(func(bar *Bar) bool { + if b != bar { + if !bar.Completed() { + uncompleted++ + return false + } + } + return true + }) + if uncompleted == 0 { + b.container.refreshCh <- time.Now() + } + b.cancel() + }() }: <-b.done case <-b.done: