From 55a8283e8df4bd6896fd7fbf136b93b9ee0e3ff1 Mon Sep 17 00:00:00 2001 From: Vibhav Pant Date: Mon, 28 Aug 2023 01:16:41 +0530 Subject: [PATCH] Synchronize writes to std::cout. --- internal/platform/implementation/linux/log_message.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/platform/implementation/linux/log_message.cc b/internal/platform/implementation/linux/log_message.cc index bd8f670d..06fa54e9 100644 --- a/internal/platform/implementation/linux/log_message.cc +++ b/internal/platform/implementation/linux/log_message.cc @@ -11,6 +11,7 @@ #include #include "absl/base/call_once.h" +#include "absl/synchronization/mutex.h" #include "internal/platform/implementation/linux/dbus.h" #include "internal/platform/implementation/linux/log_message.h" @@ -72,6 +73,8 @@ LogMessage::LogMessage(const char *file, int line, Severity severity) : log_streamer_(file, line, ConvertSeverity(severity), global_log_control_.get(), false) {} +static absl::Mutex cout_mutex; + void LogControl::send(google::LogSeverity severity, const char *full_filename, const char *base_filename, int line, const struct ::tm *tm_time, const char *message, @@ -89,6 +92,7 @@ void LogControl::send(google::LogSeverity severity, const char *full_filename, } case kConsole: default: + absl::MutexLock l(&cout_mutex); std::cout << LogSink::ToString(severity, base_filename, line, tm_time, message, message_len) << "\n";