Browse Source

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

duke
Duke 2 weeks ago
parent
commit
8a997b04f3
  1. 5
      src/util.h

5
src/util.h

@ -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;
}
}

Loading…
Cancel
Save