diff --git a/progress.go b/progress.go index f43ca67..864c4c5 100644 --- a/progress.go +++ b/progress.go @@ -102,8 +102,7 @@ func (p *progress) server() { t := time.NewTicker(refreshRate * time.Millisecond) bars := make([]*Bar, 0, 4) - lw := uilive.New() - lw.Out = p.out + lw := uilive.New(p.out) for { select { case op, ok := <-p.op: @@ -132,11 +131,14 @@ } case <-t.C: for _, b := range bars { - fmt.Fprintln(lw, b.String()) + // cannot parallel this, because order matters + fmt.Fprintln(lw, b) } lw.Flush() for _, b := range bars { - b.flushed() + go func(b *Bar) { + b.flushed() + }(b) } case d := <-p.interval: t.Stop()