diff options
| author | Jaquee <jaquee.monero@gmail.com> | 2017-01-30 18:22:59 +0100 |
|---|---|---|
| committer | Jaquee <jaquee.monero@gmail.com> | 2017-01-31 10:39:00 +0100 |
| commit | cb3281dee80edd9f811bdb80be3e3df7555a2daf (patch) | |
| tree | 39ca5ed94f6e667ab809b5036c7c86d4d9228cd3 | |
| parent | 9dbbd4c9bc9e0e7a9b3a5f3d5f2bb67897a841b7 (diff) | |
| download | monzero-gui-cb3281dee80edd9f811bdb80be3e3df7555a2daf.tar.gz monzero-gui-cb3281dee80edd9f811bdb80be3e3df7555a2daf.tar.xz monzero-gui-cb3281dee80edd9f811bdb80be3e3df7555a2daf.zip | |
WalletManager: fix possible race
| -rw-r--r-- | src/libwalletqt/WalletManager.cpp | 5 |
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 |
