diff options
| author | xiphon <xiphon@protonmail.com> | 2020-04-26 02:23:51 +0000 |
|---|---|---|
| committer | xiphon <xiphon@protonmail.com> | 2020-04-28 20:36:22 +0000 |
| commit | cfdba59584d434e38407569441f4f518dd9507fa (patch) | |
| tree | 5e971ed434929a8ede78877fa8cfcbc23f7a97cb /src/libwalletqt/Wallet.cpp | |
| parent | 4141832a4d948d7a85cf53c35c167b88a2441219 (diff) | |
| download | monzero-gui-cfdba59584d434e38407569441f4f518dd9507fa.tar.gz monzero-gui-cfdba59584d434e38407569441f4f518dd9507fa.tar.xz monzero-gui-cfdba59584d434e38407569441f4f518dd9507fa.zip | |
Wallet: implement async wallet storing
Diffstat (limited to 'src/libwalletqt/Wallet.cpp')
| -rw-r--r-- | src/libwalletqt/Wallet.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index 8eacb113..355ce6a9 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -48,7 +48,6 @@ #include <QtConcurrent/QtConcurrent> #include <QList> #include <QVector> -#include <QMutex> #include <QMutexLocker> namespace { @@ -230,9 +229,19 @@ QString Wallet::path() const return QDir::toNativeSeparators(QString::fromStdString(m_walletImpl->path())); } -bool Wallet::store(const QString &path) +void Wallet::storeAsync(const QJSValue &callback, const QString &path /* = "" */) { - return m_walletImpl->store(path.toStdString()); + const auto future = m_scheduler.run( + [this, path] { + QMutexLocker locker(&m_storeMutex); + + return QJSValueList({m_walletImpl->store(path.toStdString())}); + }, + callback); + if (!future.first) + { + QJSValue(callback).call(QJSValueList({false})); + } } bool Wallet::init(const QString &daemonAddress, bool trustedDaemon, quint64 upperTransactionLimit, bool isRecovering, bool isRecoveringFromDevice, quint64 restoreHeight) |
