diff options
| author | tobtoht <tob@featherwallet.org> | 2026-06-17 18:41:38 +0000 |
|---|---|---|
| committer | tobtoht <tob@featherwallet.org> | 2026-06-17 18:41:38 +0000 |
| commit | fdecbd3ec5e928143e5f61c141fbfadfa29dcb27 (patch) | |
| tree | 304f86de35d0b3b82cc86df15f7cde19ea929b51 /src | |
| parent | 0a6ba55c69d4ba748865a530bcda5045d5599f24 (diff) | |
| parent | bfce02b5c20adbbe5c8799dded0844618a506946 (diff) | |
| download | monzero-gui-fdecbd3ec5e928143e5f61c141fbfadfa29dcb27.tar.gz monzero-gui-fdecbd3ec5e928143e5f61c141fbfadfa29dcb27.tar.xz monzero-gui-fdecbd3ec5e928143e5f61c141fbfadfa29dcb27.zip | |
Merge pull request #4603
bfce02b libwalletqt: start wallet refresh worker lazily (selsta)
ACKs: plowsof
Diffstat (limited to 'src')
| -rw-r--r-- | src/libwalletqt/Wallet.cpp | 15 | ||||
| -rw-r--r-- | src/libwalletqt/Wallet.h | 1 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index a5ac6925..298db6eb 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -620,6 +620,19 @@ void Wallet::startRefresh() qDebug() << "Starting refresh"; m_refreshEnabled = true; m_refreshNow = true; + + if (!m_refreshThreadStarted.exchange(true)) + { + try + { + startRefreshThread(); + } + catch (...) + { + m_refreshThreadStarted.store(false); + throw; + } + } } void Wallet::pauseRefresh() @@ -1182,6 +1195,7 @@ Wallet::Wallet(Monero::Wallet *w, QObject *parent) , m_refreshNow(false) , m_refreshEnabled(false) , m_refreshing(false) + , m_refreshThreadStarted(false) , m_scheduler(this) { m_walletListener = new WalletListenerImpl(this); @@ -1195,7 +1209,6 @@ Wallet::Wallet(Monero::Wallet *w, QObject *parent) m_daemonUsername = ""; m_daemonPassword = ""; - startRefreshThread(); } Wallet::~Wallet() diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h index a5bb913c..e41540ea 100644 --- a/src/libwalletqt/Wallet.h +++ b/src/libwalletqt/Wallet.h @@ -493,6 +493,7 @@ private: std::atomic<bool> m_refreshNow; std::atomic<bool> m_refreshEnabled; std::atomic<bool> m_refreshing; + std::atomic<bool> m_refreshThreadStarted; WalletListenerImpl *m_walletListener; FutureScheduler m_scheduler; }; |
