Browse Source

make logx#getWriter concurrency-safe (#2233)

* make logx#getWriter concurrency-safe

* make logx#getWriter concurrency-safe
Archer 2 years ago
parent
commit
8c72136631
1 changed files with 12 additions and 3 deletions
  1. 12 3
      core/logx/logs.go

+ 12 - 3
core/logx/logs.go

@@ -358,10 +358,19 @@ func errorTextSync(msg string) {
 }
 
 func getWriter() Writer {
-	w := writer.Load()
+	var w Writer
+
+	writer.lock.RLock()
+	w = writer.writer
+	writer.lock.RUnlock()
+
 	if w == nil {
-		w = newConsoleWriter()
-		writer.Store(w)
+		writer.lock.Lock()
+		if writer.writer == nil {
+			writer.writer = newConsoleWriter()
+		}
+		w = writer.writer
+		writer.lock.Unlock()
 	}
 
 	return w