Hermes/src/logger/bufio_wrapper.go
2024-08-25 03:50:55 +03:00

31 lines
447 B
Go

package logger
import (
"bufio"
"sync"
)
type bufioWrapper struct {
*bufio.Writer
m *sync.RWMutex
}
func (b *bufioWrapper) Write(p []byte) (nn int, err error) {
// TODO: try replace mutex, improve logging perfomance
b.m.RLock()
defer b.m.RUnlock()
return b.Writer.Write(p)
}
func (b *bufioWrapper) Flush() error {
b.m.Lock()
defer b.m.Unlock()
return b.Writer.Flush()
}
func (b *bufioWrapper) Close() error {
return b.Flush()
}