aboutsummaryrefslogtreecommitdiff
path: root/src/qt
diff options
context:
space:
mode:
authorMatt Corallo <git@bluematt.me>2018-01-24 21:15:56 -0500
committerMatt Corallo <git@bluematt.me>2018-01-25 11:35:34 -0500
commit082a61c69d7a539b5a48c4376a657f1c5aa92d81 (patch)
treeddfc5d6520551cf395629583ae9e6088aa179af0 /src/qt
parent6970b30c6f1d2be7947295fe18f2390649b17a4b (diff)
downloadbitcoin-082a61c69d7a539b5a48c4376a657f1c5aa92d81.tar.xz
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.cpp8
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();