github.com/netdata/go.d.plugin@v0.58.1/agent/safewriter/writer.go (about) 1 // SPDX-License-Identifier: GPL-3.0-or-later 2 3 package safewriter 4 5 import ( 6 "io" 7 "os" 8 "sync" 9 ) 10 11 var Stdout = New(os.Stdout) 12 13 func New(w io.Writer) io.Writer { 14 return &writer{ 15 mx: &sync.Mutex{}, 16 w: w, 17 } 18 } 19 20 type writer struct { 21 mx *sync.Mutex 22 w io.Writer 23 } 24 25 func (w *writer) Write(p []byte) (n int, err error) { 26 w.mx.Lock() 27 n, err = w.w.Write(p) 28 w.mx.Unlock() 29 return n, err 30 }