diff options
author | Riccardo Spagni <ric@spagni.net> | 2017-02-21 11:26:47 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2017-02-21 11:26:47 +0200 |
commit | b67d35a76a314f6182a98d135e835a37bfe85acc (patch) | |
tree | cfa7242e617e3381d34047d549180e35c1e2d466 | |
parent | Merge pull request #1723 (diff) | |
parent | cryptonote_protocol: tweaks to the syncing speedup (diff) | |
download | monero-b67d35a76a314f6182a98d135e835a37bfe85acc.tar.xz |
Merge pull request #1725
53f04044 cryptonote_protocol: tweaks to the syncing speedup (moneromooo-monero)
-rw-r--r-- | src/cryptonote_protocol/cryptonote_protocol_handler.inl | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/cryptonote_protocol/cryptonote_protocol_handler.inl b/src/cryptonote_protocol/cryptonote_protocol_handler.inl index 72940d36a..7353b3124 100644 --- a/src/cryptonote_protocol/cryptonote_protocol_handler.inl +++ b/src/cryptonote_protocol/cryptonote_protocol_handler.inl @@ -888,22 +888,22 @@ namespace cryptonote { - m_core.pause_mine(); - epee::misc_utils::auto_scope_leave_caller scope_exit_handler = epee::misc_utils::create_scope_leave_handler( - boost::bind(&t_core::resume_mine, &m_core)); - MLOG_YELLOW(el::Level::Debug, "Got NEW BLOCKS inside of " << __FUNCTION__ << ": size: " << arg.blocks.size()); if (m_core.get_test_drop_download() && m_core.get_test_drop_download_height()) { // DISCARD BLOCKS for testing - uint64_t previous_height = m_core.get_current_blockchain_height(); - // we lock all the rest to avoid having multiple connections redo a lot // of the same work, and one of them doing it for nothing: subsequent // connections will wait until the current one's added its blocks, then // will add any extra it has, if any CRITICAL_REGION_LOCAL(m_sync_lock); + m_core.pause_mine(); + epee::misc_utils::auto_scope_leave_caller scope_exit_handler = epee::misc_utils::create_scope_leave_handler( + boost::bind(&t_core::resume_mine, &m_core)); + + const uint64_t previous_height = m_core.get_current_blockchain_height(); + // dismiss what another connection might already have done (likely everything) uint64_t top_height; crypto::hash top_hash; @@ -921,6 +921,9 @@ namespace cryptonote } } + if (arg.blocks.empty()) + goto skip; + m_core.prepare_handle_incoming_blocks(arg.blocks); for(const block_complete_entry& block_entry: arg.blocks) @@ -986,6 +989,7 @@ namespace cryptonote } +skip: request_missing_objects(context, true); return 1; } |