protect wg.Done from being called twice (#17075)

This commit is contained in:
jiuker
2023-04-27 22:55:36 +08:00
committed by GitHub
parent e7cac8acef
commit c8b92f6067

View File

@@ -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
}