diff --git a/cmd/progress.go b/cmd/progress.go index 0ea44501a..8c09cee89 100644 --- a/cmd/progress.go +++ b/cmd/progress.go @@ -84,9 +84,6 @@ var ( // printProgress prints the progress with an optional log func printProgress(logMessage string) { - progressMu.Lock() - defer progressMu.Unlock() - var buf bytes.Buffer w, h, err := terminal.GetSize(int(os.Stdout.Fd())) if err != nil { @@ -100,6 +97,10 @@ func printProgress(logMessage string) { buf.WriteString(s) } + // Lock from here to prevent terminal corruption + progressMu.Lock() + progressMu.Unlock() + if logMessage != "" { out("\n") out(moveUp)