aboutsummaryrefslogtreecommitdiff
path: root/src/qt
diff options
context:
space:
mode:
authorJoão Barbosa <joao.paulo.barbosa@gmail.com>2019-01-21 16:57:22 +0000
committerJoão Barbosa <joao.paulo.barbosa@gmail.com>2019-02-04 12:20:42 +0000
commitbe82dea23c3e6931f9ae7ab8c6a8595ae950587f (patch)
treecc6fbc6c0fb4c2682089b9b334c9afb031b5a3aa /src/qt
parent6c49a55b472fa4ec403e48ec718af85bfd402199 (diff)
downloadbitcoin-be82dea23c3e6931f9ae7ab8c6a8595ae950587f.tar.xz
gui: Add thread to run background activity in WalletController
Diffstat (limited to 'src/qt')
-rw-r--r--src/qt/walletcontroller.cpp8
-rw-r--r--src/qt/walletcontroller.h2
2 files changed, 9 insertions, 1 deletions
diff --git a/src/qt/walletcontroller.cpp b/src/qt/walletcontroller.cpp
index 0730afca98..a103f4c89b 100644
--- a/src/qt/walletcontroller.cpp
+++ b/src/qt/walletcontroller.cpp
@@ -26,11 +26,17 @@ WalletController::WalletController(interfaces::Node& node, const PlatformStyle*
for (std::unique_ptr<interfaces::Wallet>& wallet : m_node.getWallets()) {
getOrCreateWallet(std::move(wallet));
}
+
+ m_activity_thread.start();
}
// Not using the default destructor because not all member types definitions are
// available in the header, just forward declared.
-WalletController::~WalletController() {}
+WalletController::~WalletController()
+{
+ m_activity_thread.quit();
+ m_activity_thread.wait();
+}
std::vector<WalletModel*> WalletController::getWallets() const
{
diff --git a/src/qt/walletcontroller.h b/src/qt/walletcontroller.h
index 523e47d27a..1664fa6f3f 100644
--- a/src/qt/walletcontroller.h
+++ b/src/qt/walletcontroller.h
@@ -13,6 +13,7 @@
#include <vector>
#include <QMutex>
+#include <QThread>
class OptionsModel;
class PlatformStyle;
@@ -51,6 +52,7 @@ Q_SIGNALS:
void coinsSent(WalletModel* wallet_model, SendCoinsRecipient recipient, QByteArray transaction);
private:
+ QThread m_activity_thread;
interfaces::Node& m_node;
const PlatformStyle* const m_platform_style;
OptionsModel* const m_options_model;