diff --git a/src/qt/walletcontroller.h b/src/qt/walletcontroller.h --- a/src/qt/walletcontroller.h +++ b/src/qt/walletcontroller.h @@ -14,6 +14,8 @@ #include #include +#include + class OptionsModel; class PlatformStyle; @@ -54,6 +56,7 @@ QByteArray transaction); private: + QThread m_activity_thread; interfaces::Node &m_node; const PlatformStyle *const m_platform_style; OptionsModel *const m_options_model; diff --git a/src/qt/walletcontroller.cpp b/src/qt/walletcontroller.cpp --- a/src/qt/walletcontroller.cpp +++ b/src/qt/walletcontroller.cpp @@ -28,11 +28,16 @@ for (std::unique_ptr &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 WalletController::getWallets() const { QMutexLocker locker(&m_mutex);