From 4e43a082b219006f74d2a299658333991d561cd7 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Sun, 28 Jul 2019 23:05:32 -0500 Subject: [PATCH] raft: use mutex in "SetLogger" to avoid race conditions in tests Signed-off-by: Gyuho Lee --- raft/logger.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/raft/logger.go b/raft/logger.go index 426a77d34..6d8962965 100644 --- a/raft/logger.go +++ b/raft/logger.go @@ -19,6 +19,7 @@ import ( "io/ioutil" "log" "os" + "sync" ) type Logger interface { @@ -41,11 +42,16 @@ type Logger interface { Panicf(format string, v ...interface{}) } -func SetLogger(l Logger) { raftLogger = l } +func SetLogger(l Logger) { + raftLoggerMu.Lock() + raftLogger = l + raftLoggerMu.Unlock() +} var ( defaultLogger = &DefaultLogger{Logger: log.New(os.Stderr, "raft", log.LstdFlags)} discardLogger = &DefaultLogger{Logger: log.New(ioutil.Discard, "", 0)} + raftLoggerMu sync.Mutex raftLogger = Logger(defaultLogger) )