diff --git a/main/gui/source/crash_handlers.cpp b/main/gui/source/crash_handlers.cpp index 2ddf766cb..4b013d9e4 100644 --- a/main/gui/source/crash_handlers.cpp +++ b/main/gui/source/crash_handlers.cpp @@ -167,6 +167,10 @@ namespace hex::crash { HANDLE_SIGNAL(SIGABRT); HANDLE_SIGNAL(SIGFPE); + #if defined (SIGBUS) + HANDLE_SIGNAL(SIGBUS); + #endif + #undef HANDLE_SIGNAL } diff --git a/main/gui/source/init/tasks.cpp b/main/gui/source/init/tasks.cpp index b8d985877..c3bdf6f65 100644 --- a/main/gui/source/init/tasks.cpp +++ b/main/gui/source/init/tasks.cpp @@ -67,11 +67,12 @@ namespace hex::init { EventImHexClosing::post(); EventManager::clear(); + while (ImHexApi::Provider::isValid()) + ImHexApi::Provider::remove(ImHexApi::Provider::get()); + // Terminate all asynchronous tasks TaskManager::exit(); - while (ImHexApi::Provider::isValid()) - ImHexApi::Provider::remove(ImHexApi::Provider::get()); ContentRegistry::Provider::impl::getEntries().clear(); ImHexApi::System::getInitArguments().clear();