From 80882ac6dd5b119d2bd31b956fc7e02d0167e308 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sat, 30 Jan 2016 23:52:43 +0000 Subject: [PATCH] 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. --- src/wallet/wallet2.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index d636b0e4..f1c6c77e 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -720,6 +720,8 @@ void wallet2::refresh(uint64_t start_height, uint64_t & blocks_fetched, bool& re catch (const std::exception&) { blocks_fetched += added_blocks; + if (pull_thread.joinable()) + pull_thread.join(); if(try_count < 3) { LOG_PRINT_L1("Another try pull_blocks (try_count=" << try_count << ")...");