diff options
-rw-r--r-- | c/data.cpp | 1 | ||||
-rw-r--r-- | c/main.cpp | 6 | ||||
-rw-r--r-- | c/util.h | 9 |
3 files changed, 11 insertions, 5 deletions
@@ -128,6 +128,7 @@ void WaitFor(void (*f)(unsigned char*)) static auto procThread = [](void (*f)(unsigned char*)) noexcept -> void { + SET_TERMINATE; while (!(sig & READY)) Sleep(100); sig = 0; @@ -25,11 +25,7 @@ * need be. */ /* Exit gracefully on uncaught exception. */ -static auto _ = std::set_terminate([]() noexcept -{ - ShowException(L"Episode Browser was terminated due to an error: %s", L"Fatal Error", MB_ICONERROR); - _Exit(1); -}); +static auto _ = SET_TERMINATE; /* Looked-up constants. */ int g_dpi = 96; @@ -10,6 +10,15 @@ #define CONCAT(a, b) CONCAT_IMPL(a, b) #define _ CONCAT(unused_, __LINE__) +#define SET_TERMINATE \ + std::set_terminate([]() noexcept \ + { \ + ShowException( \ + L"Episode Browser was terminated due to an error: %s", \ + L"Fatal Error", MB_ICONERROR); \ + _Exit(1); \ + }) + template <typename F> struct Finally { |