Pause miner before preparing for incoming blocks

This commit is contained in:
NoodleDoodleNoodleDoodleNoodleDoodleNoo 2015-07-10 14:39:12 -07:00 committed by NoodleDoodleNoodleDoodleNoodleDoodleNoo
parent e5d2680094
commit 2b2ae36724

View File

@ -314,10 +314,10 @@ namespace cryptonote
LOG_PRINT_CCONTEXT_L2("NOTIFY_NEW_BLOCK (hop " << arg.hop << ")"); LOG_PRINT_CCONTEXT_L2("NOTIFY_NEW_BLOCK (hop " << arg.hop << ")");
if(context.m_state != cryptonote_connection_context::state_normal) if(context.m_state != cryptonote_connection_context::state_normal)
return 1; return 1;
m_core.pause_mine();
std::list<block_complete_entry> blocks; std::list<block_complete_entry> blocks;
blocks.push_back(arg.b); blocks.push_back(arg.b);
m_core.prepare_handle_incoming_blocks(blocks); m_core.prepare_handle_incoming_blocks(blocks);
for(auto tx_blob_it = arg.b.txs.begin(); tx_blob_it!=arg.b.txs.end();tx_blob_it++) for(auto tx_blob_it = arg.b.txs.begin(); tx_blob_it!=arg.b.txs.end();tx_blob_it++)
{ {
cryptonote::tx_verification_context tvc = AUTO_VAL_INIT(tvc); cryptonote::tx_verification_context tvc = AUTO_VAL_INIT(tvc);
@ -327,13 +327,12 @@ namespace cryptonote
LOG_PRINT_CCONTEXT_L1("Block verification failed: transaction verification failed, dropping connection"); LOG_PRINT_CCONTEXT_L1("Block verification failed: transaction verification failed, dropping connection");
m_p2p->drop_connection(context); m_p2p->drop_connection(context);
m_core.cleanup_handle_incoming_blocks(); m_core.cleanup_handle_incoming_blocks();
m_core.resume_mine();
return 1; return 1;
} }
} }
block_verification_context bvc = boost::value_initialized<block_verification_context>(); block_verification_context bvc = boost::value_initialized<block_verification_context>();
m_core.pause_mine();
m_core.handle_incoming_block(arg.b.block, bvc); // got block from handle_notify_new_block m_core.handle_incoming_block(arg.b.block, bvc); // got block from handle_notify_new_block
m_core.cleanup_handle_incoming_blocks(true); m_core.cleanup_handle_incoming_blocks(true);
m_core.resume_mine(); m_core.resume_mine();