Moved code back into OpenVulkano namespace, removed unnecessary comment

This commit is contained in:
Vladyslav Baranovskyi
2024-05-30 14:15:16 +03:00
parent 7aa9d0eb82
commit faff80e46e

View File

@@ -23,45 +23,6 @@
# include <dbghelp.h> # include <dbghelp.h>
#endif #endif
namespace
{
bool didLoggerShutdown = false;
void signalHandler(int sigCode)
{
if(!didLoggerShutdown)
spdlog::error("Received signal {}", sigCode);
spdlog::shutdown();
didLoggerShutdown = true;
std::raise(sigCode); // calls default handler
}
#ifdef _WIN32
LONG WINAPI win32ExceptionHandler(EXCEPTION_POINTERS *exceptionPointers)
{
// NOTE(vb): We can report some of the exceptionPointers fields to the user... But this is for windows only
if(!didLoggerShutdown)
spdlog::error("An exception occured");
spdlog::shutdown();
didLoggerShutdown = true;
return EXCEPTION_CONTINUE_SEARCH;
}
#endif
void setupSignalHandlers()
{
std::signal(SIGSEGV, signalHandler);
std::signal(SIGABRT, signalHandler);
std::signal(SIGFPE, signalHandler);
std::signal(SIGILL, signalHandler);
// std::signal(SIGINT, signalHandler);
std::signal(SIGTERM, signalHandler);
#ifdef _WIN32
// SetConsoleCtrlHandler(handlerRoutine, TRUE);
SetUnhandledExceptionFilter(win32ExceptionHandler);
#endif
}
}
namespace OpenVulkano namespace OpenVulkano
{ {
@@ -84,6 +45,44 @@ namespace OpenVulkano
Logger::Ptr Logger::PERF = nullptr; Logger::Ptr Logger::PERF = nullptr;
Logger::Ptr Logger::APP = nullptr; Logger::Ptr Logger::APP = nullptr;
namespace
{
bool didLoggerShutdown = false;
void signalHandler(int sigCode)
{
if(!didLoggerShutdown)
spdlog::error("Received signal {}", sigCode);
spdlog::shutdown();
didLoggerShutdown = true;
std::raise(sigCode); // calls default handler
}
#ifdef _WIN32
LONG WINAPI win32ExceptionHandler(EXCEPTION_POINTERS *exceptionPointers)
{
// NOTE(vb): We can report some of the exceptionPointers fields to the user... But this is for windows only
if(!didLoggerShutdown)
spdlog::error("An exception occured");
spdlog::shutdown();
didLoggerShutdown = true;
return EXCEPTION_CONTINUE_SEARCH;
}
#endif
void setupSignalHandlers()
{
std::signal(SIGSEGV, signalHandler);
std::signal(SIGABRT, signalHandler);
std::signal(SIGFPE, signalHandler);
std::signal(SIGILL, signalHandler);
// std::signal(SIGINT, signalHandler);
std::signal(SIGTERM, signalHandler);
#ifdef _WIN32
SetUnhandledExceptionFilter(win32ExceptionHandler);
#endif
}
}
void Logger::SetupLogger(std::string logFolder, const std::string& logFile) void Logger::SetupLogger(std::string logFolder, const std::string& logFile)
{ {
@@ -123,7 +122,7 @@ namespace OpenVulkano
spdlog::flush_every(std::chrono::seconds(5)); spdlog::flush_every(std::chrono::seconds(5));
::setupSignalHandlers(); setupSignalHandlers();
MANAGER->info("Logger initialized"); MANAGER->info("Logger initialized");
} }