diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2018-07-30 11:14:02 +0100 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2018-07-30 11:14:45 +0100 |
commit | 5860611afa888d4644537e3c888eecc93932cae1 (patch) | |
tree | f7b2d010922ea519b731db27bc8a3444edbe3a3a /src | |
parent | Merge pull request #4129 (diff) | |
download | monero-5860611afa888d4644537e3c888eecc93932cae1.tar.xz |
blockchain_blackball: allow resumable interrupt with ^C
Diffstat (limited to 'src')
-rw-r--r-- | src/blockchain_utilities/blockchain_blackball.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/blockchain_utilities/blockchain_blackball.cpp b/src/blockchain_utilities/blockchain_blackball.cpp index 52d2938cd..65b6384dc 100644 --- a/src/blockchain_utilities/blockchain_blackball.cpp +++ b/src/blockchain_utilities/blockchain_blackball.cpp @@ -404,6 +404,11 @@ int main(int argc, char* argv[]) cryptonote::block b = core_storage[0]->get_db().get_block_from_height(0); tools::ringdb ringdb(output_file_path.string(), epee::string_tools::pod_to_hex(get_block_hash(b))); + bool stop_requested = false; + tools::signal_handler::install([&stop_requested](int type) { + stop_requested = true; + }); + for (size_t n = 0; n < inputs.size(); ++n) { const std::string canonical = boost::filesystem::canonical(inputs[n]).string(); @@ -489,9 +494,17 @@ int main(int argc, char* argv[]) } state.relative_rings[txin.k_image] = new_ring; } + if (stop_requested) + { + MINFO("Stopping scan, secondary passes will still happen..."); + return false; + } return true; }); + LOG_PRINT_L0("blockchain from " << inputs[n] << " processed still height " << start_idx); state.processed_heights[canonical] = start_idx; + if (stop_requested) + break; } while (!newly_spent.empty()) |