From b908965048911d5e6337fda7f6b027b594b88ccd Mon Sep 17 00:00:00 2001 From: iTrooz Date: Wed, 11 Oct 2023 22:38:54 +0200 Subject: [PATCH] feat: log exit tasks to console (#1363) --- main/gui/include/init/tasks.hpp | 5 +++++ main/gui/source/crash_handlers.cpp | 3 +-- main/gui/source/init/tasks.cpp | 8 ++++++++ main/gui/source/main.cpp | 3 +-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/main/gui/include/init/tasks.hpp b/main/gui/include/init/tasks.hpp index 172b7909e..86ea4c2e2 100644 --- a/main/gui/include/init/tasks.hpp +++ b/main/gui/include/init/tasks.hpp @@ -12,6 +12,11 @@ namespace hex::init { bool async; }; + /** + * @brief Runs the exit tasks and print them to console + */ + void runExitTasks(); + std::vector getInitTasks(); std::vector getExitTasks(); } \ No newline at end of file diff --git a/main/gui/source/crash_handlers.cpp b/main/gui/source/crash_handlers.cpp index 6bc40f34f..cd88cea4a 100644 --- a/main/gui/source/crash_handlers.cpp +++ b/main/gui/source/crash_handlers.cpp @@ -76,8 +76,7 @@ namespace hex::crash { EventManager::post(signalNumber); // Run exit tasks - for (const auto &[name, task, async] : init::getExitTasks()) - task(); + init::runExitTasks(); // Terminate all asynchronous tasks TaskManager::exit(); diff --git a/main/gui/source/init/tasks.cpp b/main/gui/source/init/tasks.cpp index 16bf2e412..15195e8e9 100644 --- a/main/gui/source/init/tasks.cpp +++ b/main/gui/source/init/tasks.cpp @@ -608,6 +608,14 @@ namespace hex::init { return true; } + // run all exit taks, and print to console + void runExitTasks() { + for (const auto &[name, task, async] : init::getExitTasks()) { + task(); + log::info("Finished exit task {}", name); + } + } + std::vector getInitTasks() { return { { "Setting up environment", setupEnvironment, false }, diff --git a/main/gui/source/main.cpp b/main/gui/source/main.cpp index 208b2d2e1..0c2885ce8 100644 --- a/main/gui/source/main.cpp +++ b/main/gui/source/main.cpp @@ -95,8 +95,7 @@ namespace { */ void deinitializeImHex() { // Run exit tasks - for (const auto &[name, task, async] : init::getExitTasks()) - task(); + init::runExitTasks(); // Terminate all asynchronous tasks TaskManager::exit();