diff --git a/renderer.go b/renderer.go index e919801..4a3263b 100644 --- a/renderer.go +++ b/renderer.go @@ -88,6 +88,9 @@ func (r *renderer) listen() { // flush renders the buffer. func (r *renderer) flush() { + r.mtx.Lock() + defer r.mtx.Unlock() + if r.buf.Len() == 0 || r.buf.String() == r.lastRender { // Nothing to do return @@ -112,9 +115,6 @@ func (r *renderer) flush() { out := new(bytes.Buffer) - r.mtx.Lock() - defer r.mtx.Unlock() - // Clear any lines we painted in the last render. if r.linesRendered > 0 { for i := r.linesRendered - 1; i > 0; i-- {