liamwhite
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
23 additions and
0 deletions
-
src/common/assert.cpp
-
src/common/logging/backend.cpp
-
src/common/logging/backend.h
|
|
|
@ -3,16 +3,19 @@ |
|
|
|
|
|
|
|
#include "common/assert.h"
|
|
|
|
#include "common/common_funcs.h"
|
|
|
|
#include "common/logging/backend.h"
|
|
|
|
|
|
|
|
#include "common/settings.h"
|
|
|
|
|
|
|
|
void assert_fail_impl() { |
|
|
|
if (Settings::values.use_debug_asserts) { |
|
|
|
Common::Log::Stop(); |
|
|
|
Crash(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[[noreturn]] void unreachable_impl() { |
|
|
|
Common::Log::Stop(); |
|
|
|
Crash(); |
|
|
|
throw std::runtime_error("Unreachable code"); |
|
|
|
} |
|
|
|
@ -208,6 +208,10 @@ public: |
|
|
|
instance->StartBackendThread(); |
|
|
|
} |
|
|
|
|
|
|
|
static void Stop() { |
|
|
|
instance->StopBackendThread(); |
|
|
|
} |
|
|
|
|
|
|
|
Impl(const Impl&) = delete; |
|
|
|
Impl& operator=(const Impl&) = delete; |
|
|
|
|
|
|
|
@ -259,6 +263,15 @@ private: |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
void StopBackendThread() { |
|
|
|
backend_thread.request_stop(); |
|
|
|
if (backend_thread.joinable()) { |
|
|
|
backend_thread.join(); |
|
|
|
} |
|
|
|
|
|
|
|
ForEachBackend([](Backend& backend) { backend.Flush(); }); |
|
|
|
} |
|
|
|
|
|
|
|
Entry CreateEntry(Class log_class, Level log_level, const char* filename, unsigned int line_nr, |
|
|
|
const char* function, std::string&& message) const { |
|
|
|
using std::chrono::duration_cast; |
|
|
|
@ -313,6 +326,10 @@ void Start() { |
|
|
|
Impl::Start(); |
|
|
|
} |
|
|
|
|
|
|
|
void Stop() { |
|
|
|
Impl::Stop(); |
|
|
|
} |
|
|
|
|
|
|
|
void DisableLoggingInTests() { |
|
|
|
initialization_in_progress_suppress_logging = true; |
|
|
|
} |
|
|
|
|
|
|
|
@ -14,6 +14,9 @@ void Initialize(); |
|
|
|
|
|
|
|
void Start(); |
|
|
|
|
|
|
|
/// Explicitly stops the logger thread and flushes the buffers |
|
|
|
void Stop(); |
|
|
|
|
|
|
|
void DisableLoggingInTests(); |
|
|
|
|
|
|
|
/** |
|
|
|
|