diff --git a/colorable_windows.go b/colorable_windows.go index d9967cd..8ff28a3 100644 --- a/colorable_windows.go +++ b/colorable_windows.go @@ -10,6 +10,7 @@ import ( "os" "strconv" "strings" + "sync" "syscall" "unsafe" @@ -431,8 +432,14 @@ func atoiWithDefault(s string, def int) (int, error) { return strconv.Atoi(s) } +var ( + writeMutex sync.Mutex +) + // Write writes data on console func (w *Writer) Write(data []byte) (n int, err error) { + writeMutex.Lock() + defer writeMutex.Unlock() var csbi consoleScreenBufferInfo procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))