d2/e2etests-cli/concurrent_buf.go

27 lines
425 B
Go
Raw Normal View History

2023-12-18 22:46:56 +00:00
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
}