internal/log/sync_writer.go (17 lines of code) (raw):

package log import ( "io" "sync" ) type syncWriter struct { io.Writer m sync.Mutex } func (w *syncWriter) Write(data []byte) (int, error) { w.m.Lock() defer w.m.Unlock() return w.Writer.Write(data) } // NewSyncWriter returns Writer wrapped with a mutex that is acquired // before each Write call. func NewSyncWriter(w io.Writer) io.Writer { return &syncWriter{Writer: w} }