mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 06:58:57 +01:00
gui: Avoid wallet tryGetBalances calls before TransactionChanged or BlockTip notifications
interfaces::Wallet::tryGetBalances was recently updated in https://github.com/bitcoin/bitcoin/pull/18160 to avoid computing balances internally, but this not efficient as it could be with #10102 because tryGetBalances is an interprocess call. Implementing the TransactionChanged / BlockTip check outside of tryGetBalances also allows tryGetBalances to be simplified in next commit 'Revert "gui: Avoid Wallet::GetBalance in WalletModel::pollBalanceChanged"'.
This commit is contained in:
@@ -85,6 +85,10 @@ void WalletModel::updateStatus()
|
|||||||
|
|
||||||
void WalletModel::pollBalanceChanged()
|
void WalletModel::pollBalanceChanged()
|
||||||
{
|
{
|
||||||
|
// Avoid recomputing wallet balances unless a TransactionChanged or
|
||||||
|
// BlockTip notification was received.
|
||||||
|
if (!fForceCheckBalanceChanged && cachedNumBlocks == m_client_model->getNumBlocks()) return;
|
||||||
|
|
||||||
// Try to get balances and return early if locks can't be acquired. This
|
// Try to get balances and return early if locks can't be acquired. This
|
||||||
// avoids the GUI from getting stuck on periodical polls if the core is
|
// avoids the GUI from getting stuck on periodical polls if the core is
|
||||||
// holding the locks for a longer time - for example, during a wallet
|
// holding the locks for a longer time - for example, during a wallet
|
||||||
|
|||||||
Reference in New Issue
Block a user