aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2021-08-02 18:42:32 -0400
committerluigi1111 <luigi1111w@gmail.com>2021-08-02 18:42:32 -0400
commit9aa2d4c16e40e73c6e0b1fe24cd80f28c54560da (patch)
tree8cdac31d77265c9e5192909b232e82acefbd53c4 /src
parentMerge pull request #7824 (diff)
parentwallet2: refresh: check error and throw before potentially breaking out of loop (diff)
downloadmonero-9aa2d4c16e40e73c6e0b1fe24cd80f28c54560da.tar.xz
Merge pull request #7747
8cf95c8 wallet2: refresh: check error and throw before potentially breaking out of loop (tobtoht)
Diffstat (limited to 'src')
-rw-r--r--src/wallet/wallet2.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp
index 133db6c2a..33f482a12 100644
--- a/src/wallet/wallet2.cpp
+++ b/src/wallet/wallet2.cpp
@@ -3494,14 +3494,6 @@ void wallet2::refresh(bool trusted_daemon, uint64_t start_height, uint64_t & blo
blocks_fetched += added_blocks;
}
THROW_WALLET_EXCEPTION_IF(!waiter.wait(), error::wallet_internal_error, "Exception in thread pool");
- if(!first && blocks_start_height == next_blocks_start_height)
- {
- m_node_rpc_proxy.set_height(m_blockchain.size());
- refreshed = true;
- break;
- }
-
- first = false;
// handle error from async fetching thread
if (error)
@@ -3512,6 +3504,15 @@ void wallet2::refresh(bool trusted_daemon, uint64_t start_height, uint64_t & blo
throw std::runtime_error("proxy exception in refresh thread");
}
+ if(!first && blocks_start_height == next_blocks_start_height)
+ {
+ m_node_rpc_proxy.set_height(m_blockchain.size());
+ refreshed = true;
+ break;
+ }
+
+ first = false;
+
if (!next_blocks.empty())
{
const uint64_t expected_start_height = std::max(static_cast<uint64_t>(m_blockchain.size()), uint64_t(1)) - 1;