d2/e2etests-cli/concurrent_buf.go
Alexander Wang e711b9754b
fix 1 race
2023-12-18 14:46:56 -08:00

26 lines
425 B
Go

package e2etests_cli
import "sync"
// stderrWrapper lets stderr be read/write concurrently
type stderrWrapper struct {
msg string
m sync.Mutex
}
func (e *stderrWrapper) Write(p []byte) (n int, err error) {
e.m.Lock()
defer e.m.Unlock()
e.msg += string(p)
return len(p), nil
}
func (e *stderrWrapper) Reset() {
e.msg = ""
}
func (e *stderrWrapper) Read() string {
e.m.Lock()
defer e.m.Unlock()
return e.msg
}