diff options
| author | Howard Chu <highlandsun@gmail.com> | 2017-01-14 11:28:17 -0800 |
|---|---|---|
| committer | Howard Chu <hyc@symas.com> | 2017-01-14 22:43:06 +0000 |
| commit | eaf8470b293c65140b135829d65422208aa29c44 (patch) | |
| tree | 92c0d3a84e34956d32d4d62a87e560c913a0950a | |
| parent | c903c5541e93f521d1a0e7c89393e19aa7c7459e (diff) | |
| download | monzero-core-eaf8470b293c65140b135829d65422208aa29c44.tar.gz monzero-core-eaf8470b293c65140b135829d65422208aa29c44.tar.xz monzero-core-eaf8470b293c65140b135829d65422208aa29c44.zip | |
Must wait for previous batch to finish before starting new one
| -rw-r--r-- | src/cryptonote_core/blockchain.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp index b4ed06bc0..c368d7b24 100644 --- a/src/cryptonote_core/blockchain.cpp +++ b/src/cryptonote_core/blockchain.cpp @@ -3544,12 +3544,17 @@ bool Blockchain::prepare_handle_incoming_blocks(const std::list<block_complete_e { LOG_PRINT_YELLOW("Blockchain::" << __func__, LOG_LEVEL_3); TIME_MEASURE_START(prepare); + bool stop_batch; CRITICAL_REGION_LOCAL(m_blockchain_lock); if(blocks_entry.size() == 0) return false; - m_db->batch_start(blocks_entry.size()); + while (!(stop_batch = m_db->batch_start(blocks_entry.size()))) { + m_blockchain_lock.unlock(); + epee::misc_utils::sleep_no_w(1000); + m_blockchain_lock.lock(); + } if ((m_db->height() + blocks_entry.size()) < m_blocks_hash_check.size()) return true; |
