[K/N] Avoid global dtors in suspension and logging

^KT-50713

Merge-request: KT-MR-5426
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
This commit is contained in:
Alexander Shabalin
2022-01-12 13:28:43 +00:00
committed by Space
parent eddf8c9e72
commit d8f99d8974
2 changed files with 4 additions and 4 deletions
@@ -188,8 +188,8 @@ void logging::Log(Level level, std::initializer_list<const char*> tags, const ch
} }
void logging::VLog(Level level, std::initializer_list<const char*> tags, const char* format, std::va_list args) noexcept { void logging::VLog(Level level, std::initializer_list<const char*> tags, const char* format, std::va_list args) noexcept {
static auto logFilter = internal::CreateLogFilter(compiler::runtimeLogs()); [[clang::no_destroy]] static auto logFilter = internal::CreateLogFilter(compiler::runtimeLogs());
static auto logger = internal::CreateStderrLogger(); [[clang::no_destroy]] static auto logger = internal::CreateStderrLogger();
RuntimeAssert(tags.size() > 0, "Cannot Log without tags"); RuntimeAssert(tags.size() > 0, "Cannot Log without tags");
std_support::span<const char* const> tagsSpan(std::data(tags), std::size(tags)); std_support::span<const char* const> tagsSpan(std::data(tags), std::size(tags));
internal::Log(*logFilter, *logger, level, tagsSpan, format, args); internal::Log(*logFilter, *logger, level, tagsSpan, format, args);
@@ -43,8 +43,8 @@ void yield() noexcept {
} }
THREAD_LOCAL_VARIABLE bool gSuspensionRequestedByCurrentThread = false; THREAD_LOCAL_VARIABLE bool gSuspensionRequestedByCurrentThread = false;
std::mutex gSuspensionMutex; [[clang::no_destroy]] std::mutex gSuspensionMutex;
std::condition_variable gSuspendsionCondVar; [[clang::no_destroy]] std::condition_variable gSuspendsionCondVar;
} // namespace } // namespace