diff options
author | Riccardo Spagni <ric@spagni.net> | 2017-09-25 16:57:07 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2017-09-25 16:57:07 +0200 |
commit | e5a2cdbfad982273316067470654d7e1e1693c1f (patch) | |
tree | fa1cc8dcc7c6a64d7c4ae79169d61c08316db9a1 /src/cryptonote_core | |
parent | Merge pull request #2454 (diff) | |
parent | Use actual batch size for resize estimates (diff) | |
download | monero-e5a2cdbfad982273316067470654d7e1e1693c1f.tar.xz |
Merge pull request #2457
d2d8a41c Use actual batch size for resize estimates (Howard Chu)
Diffstat (limited to 'src/cryptonote_core')
-rw-r--r-- | src/cryptonote_core/blockchain.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp index 7ee88e430..e1cc7361b 100644 --- a/src/cryptonote_core/blockchain.cpp +++ b/src/cryptonote_core/blockchain.cpp @@ -3732,6 +3732,7 @@ bool Blockchain::prepare_handle_incoming_blocks(const std::list<block_complete_e MTRACE("Blockchain::" << __func__); TIME_MEASURE_START(prepare); bool stop_batch; + uint64_t bytes = 0; // Order of locking must be: // m_incoming_tx_lock (optional) @@ -3753,7 +3754,15 @@ bool Blockchain::prepare_handle_incoming_blocks(const std::list<block_complete_e if(blocks_entry.size() == 0) return false; - while (!(stop_batch = m_db->batch_start(blocks_entry.size()))) { + for (const auto &entry : blocks_entry) + { + bytes += entry.block.size(); + for (const auto &tx_blob : entry.txs) + { + bytes += tx_blob.size(); + } + } + while (!(stop_batch = m_db->batch_start(blocks_entry.size(), bytes))) { m_blockchain_lock.unlock(); m_tx_pool.unlock(); epee::misc_utils::sleep_no_w(1000); |