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:
moneromooo-monero 2016-01-30 23:52:43 +00:00
parent b91fc2dc3c
commit 80882ac6dd
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3

View file

@ -720,6 +720,8 @@ void wallet2::refresh(uint64_t start_height, uint64_t & blocks_fetched, bool& re
catch (const std::exception&) catch (const std::exception&)
{ {
blocks_fetched += added_blocks; blocks_fetched += added_blocks;
if (pull_thread.joinable())
pull_thread.join();
if(try_count < 3) if(try_count < 3)
{ {
LOG_PRINT_L1("Another try pull_blocks (try_count=" << try_count << ")..."); LOG_PRINT_L1("Another try pull_blocks (try_count=" << try_count << ")...");