Skip to content

Commit

Permalink
Make td::Log thread-safe.
Browse files Browse the repository at this point in the history
GitOrigin-RevId: d1942c9b5ff72ea6ae100a0b4b65f1371f8ee534
  • Loading branch information
levlam committed Sep 1, 2018
1 parent 642f5ed commit 6a2cb7a
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions td/telegram/Log.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@
#include "td/utils/logging.h"
#include "td/utils/Slice.h"

#include <mutex>

namespace td {

static std::mutex log_mutex;
static FileLog file_log;
static TsLog ts_log(&file_log);
static int64 max_log_file_size = 10 << 20;
Expand All @@ -24,6 +27,7 @@ static void fatal_error_callback_wrapper(CSlice message) {
}

bool Log::set_file_path(string file_path) {
std::lock_guard<std::mutex> lock(log_mutex);
if (file_path.empty()) {
log_interface = default_log_interface;
return true;
Expand All @@ -38,17 +42,20 @@ bool Log::set_file_path(string file_path) {
}

void Log::set_max_file_size(int64 max_file_size) {
std::lock_guard<std::mutex> lock(log_mutex);
max_log_file_size = max(max_file_size, static_cast<int64>(0));
file_log.set_rotate_threshold(max_log_file_size);
}

void Log::set_verbosity_level(int new_verbosity_level) {
std::lock_guard<std::mutex> lock(log_mutex);
if (0 <= new_verbosity_level && new_verbosity_level <= 1024) {
SET_VERBOSITY_LEVEL(VERBOSITY_NAME(FATAL) + new_verbosity_level);
}
}

void Log::set_fatal_error_callback(FatalErrorCallbackPtr callback) {
std::lock_guard<std::mutex> lock(log_mutex);
if (callback == nullptr) {
fatal_error_callback = nullptr;
set_log_fatal_error_callback(nullptr);
Expand Down

0 comments on commit 6a2cb7a

Please sign in to comment.