aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaquee <jaquee.monero@gmail.com>2017-01-30 18:22:59 +0100
committerJaquee <jaquee.monero@gmail.com>2017-01-31 10:39:00 +0100
commitcb3281dee80edd9f811bdb80be3e3df7555a2daf (patch)
tree39ca5ed94f6e667ab809b5036c7c86d4d9228cd3
parent9dbbd4c9bc9e0e7a9b3a5f3d5f2bb67897a841b7 (diff)
downloadmonzero-gui-cb3281dee80edd9f811bdb80be3e3df7555a2daf.tar.gz
monzero-gui-cb3281dee80edd9f811bdb80be3e3df7555a2daf.tar.xz
monzero-gui-cb3281dee80edd9f811bdb80be3e3df7555a2daf.zip
WalletManager: fix possible race
-rw-r--r--src/libwalletqt/WalletManager.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp
index ec03610d..df0ffdbd 100644
--- a/src/libwalletqt/WalletManager.cpp
+++ b/src/libwalletqt/WalletManager.cpp
@@ -64,13 +64,14 @@ void WalletManager::openWalletAsync(const QString &path, const QString &password
QFuture<Wallet*> future = QtConcurrent::run(this, &WalletManager::openWallet,
path, password, testnet);
QFutureWatcher<Wallet*> * watcher = new QFutureWatcher<Wallet*>();
- watcher->setFuture(future);
+
connect(watcher, &QFutureWatcher<Wallet*>::finished,
this, [this, watcher]() {
QFuture<Wallet*> future = watcher->future();
watcher->deleteLater();
emit walletOpened(future.result());
});
+ watcher->setFuture(future);
}
@@ -121,7 +122,6 @@ void WalletManager::closeWalletAsync()
{
QFuture<QString> future = QtConcurrent::run(this, &WalletManager::closeWallet);
QFutureWatcher<QString> * watcher = new QFutureWatcher<QString>();
- watcher->setFuture(future);
connect(watcher, &QFutureWatcher<QString>::finished,
this, [this, watcher]() {
@@ -129,6 +129,7 @@ void WalletManager::closeWalletAsync()
watcher->deleteLater();
emit walletClosed(future.result());
});
+ watcher->setFuture(future);
}
bool WalletManager::walletExists(const QString &path) const