diff --git a/progress.go b/progress.go index 58dd4e8..510d902 100644 --- a/progress.go +++ b/progress.go @@ -120,6 +120,9 @@ func (p *Progress) Abort(b *Bar) { select { case p.operateState <- func(s *pState) { + if b.index < 0 { + return + } s.heapUpdated = heap.Remove(s.bHeap, b.index) != nil s.shutdownPending = append(s.shutdownPending, b) }: @@ -222,6 +225,7 @@ s.heapUpdated = true delete(s.waitBars, bf.bar) } + // defer is required to make removeOnComplete visually happen defer func() { s.shutdownPending = append(s.shutdownPending, bf.bar) }()