diff --git a/internal/ioutil/wait_pipe.go b/internal/ioutil/wait_pipe.go index 124cde78f..67f490ba4 100644 --- a/internal/ioutil/wait_pipe.go +++ b/internal/ioutil/wait_pipe.go @@ -25,13 +25,16 @@ import ( // PipeWriter is similar to io.PipeWriter with wait group type PipeWriter struct { *io.PipeWriter + once sync.Once done func() } // CloseWithError close with supplied error the writer end. func (w *PipeWriter) CloseWithError(err error) error { err = w.PipeWriter.CloseWithError(err) - w.done() + w.once.Do(func() { + w.done() + }) return err }