Check if the node should stop when processing thread interrupts and exceptions, in hopes of stopping before a deadlock occurs

This commit is contained in:
Duke
2024-06-09 11:22:21 -04:00
parent cc4b0750d8
commit 8a997b04f3

View File

@@ -47,6 +47,8 @@ static const bool DEFAULT_LOGTIMEMICROS = false;
static const bool DEFAULT_LOGIPS = false;
static const bool DEFAULT_LOGTIMESTAMPS = true;
void CheckIfWeShouldStop();
/** Signals for translation. */
class CTranslationInterface
{
@@ -272,14 +274,17 @@ template <typename Callable> void TraceThread(const char* name, Callable func)
catch (const boost::thread_interrupted&)
{
LogPrintf("%s thread interrupt\n", name);
CheckIfWeShouldStop();
throw;
}
catch (const std::exception& e) {
PrintExceptionContinue(&e, name);
CheckIfWeShouldStop();
throw;
}
catch (...) {
PrintExceptionContinue(NULL, name);
CheckIfWeShouldStop();
throw;
}
}