diff options
author | Matt Corallo <git@bluematt.me> | 2018-01-24 21:15:56 -0500 |
---|---|---|
committer | Matt Corallo <git@bluematt.me> | 2018-01-25 11:35:34 -0500 |
commit | 082a61c69d7a539b5a48c4376a657f1c5aa92d81 (patch) | |
tree | ddfc5d6520551cf395629583ae9e6088aa179af0 /src/qt | |
parent | 6970b30c6f1d2be7947295fe18f2390649b17a4b (diff) |
Move scheduler/threadGroup into common-init instead of per-app
This resolves #12229 which pointed out a shutdown deadlock due to
scheduler/checkqueue having been shut down while network message
processing is still running.
Diffstat (limited to 'src/qt')
-rw-r--r-- | src/qt/bitcoin.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 0666dcb9a3..b26d99a20a 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -28,7 +28,6 @@ #include <init.h> #include <rpc/server.h> -#include <scheduler.h> #include <ui_interface.h> #include <util.h> #include <warnings.h> @@ -193,8 +192,6 @@ Q_SIGNALS: void runawayException(const QString &message); private: - boost::thread_group threadGroup; - CScheduler scheduler; /// Pass fatal exception message to UI thread void handleRunawayException(const std::exception *e); @@ -300,7 +297,7 @@ void BitcoinCore::initialize() try { qDebug() << __func__ << ": Running initialization in thread"; - bool rv = AppInitMain(threadGroup, scheduler); + bool rv = AppInitMain(); Q_EMIT initializeResult(rv); } catch (const std::exception& e) { handleRunawayException(&e); @@ -314,8 +311,7 @@ void BitcoinCore::shutdown() try { qDebug() << __func__ << ": Running Shutdown in thread"; - Interrupt(threadGroup); - threadGroup.join_all(); + Interrupt(); Shutdown(); qDebug() << __func__ << ": Shutdown finished"; Q_EMIT shutdownResult(); |