aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortobtoht <tob@featherwallet.org>2026-06-17 18:41:38 +0000
committertobtoht <tob@featherwallet.org>2026-06-17 18:41:38 +0000
commitfdecbd3ec5e928143e5f61c141fbfadfa29dcb27 (patch)
tree304f86de35d0b3b82cc86df15f7cde19ea929b51 /src
parent0a6ba55c69d4ba748865a530bcda5045d5599f24 (diff)
parentbfce02b5c20adbbe5c8799dded0844618a506946 (diff)
downloadmonzero-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.cpp15
-rw-r--r--src/libwalletqt/Wallet.h1
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;
};