mirror of
https://github.com/monero-project/monero.git
synced 2024-12-14 12:26:31 +02:00
wallet: guard against exception in process_blocks
If an exception occurs, the thread needs to be joined, or it will be deleted while still live, and terminate the process.
This commit is contained in:
parent
b91fc2dc3c
commit
2cf8b32229
@ -701,7 +701,15 @@ void wallet2::refresh(uint64_t start_height, uint64_t & blocks_fetched, bool& re
|
|||||||
bool error = false;
|
bool error = false;
|
||||||
pull_thread = std::thread([&]{pull_next_blocks(start_height, next_blocks_start_height, short_chain_history, blocks, next_blocks, error);});
|
pull_thread = std::thread([&]{pull_next_blocks(start_height, next_blocks_start_height, short_chain_history, blocks, next_blocks, error);});
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
process_blocks(blocks_start_height, blocks, added_blocks);
|
process_blocks(blocks_start_height, blocks, added_blocks);
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
pull_thread.join();
|
||||||
|
throw;
|
||||||
|
}
|
||||||
blocks_fetched += added_blocks;
|
blocks_fetched += added_blocks;
|
||||||
pull_thread.join();
|
pull_thread.join();
|
||||||
if(!added_blocks)
|
if(!added_blocks)
|
||||||
|
Loading…
Reference in New Issue
Block a user