From 35451e31d4a6c22b896b314606d58e7468fe06e8 Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan Date: Mon, 8 Aug 2016 13:47:00 +0200 Subject: [PATCH] Update cache usage on commiting block info (#1871) --- ethcore/src/blockchain/blockchain.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ethcore/src/blockchain/blockchain.rs b/ethcore/src/blockchain/blockchain.rs index 3fa728686..a374c0bf6 100644 --- a/ethcore/src/blockchain/blockchain.rs +++ b/ethcore/src/blockchain/blockchain.rs @@ -775,12 +775,20 @@ impl BlockChain { /// Applt pending insertion updates pub fn commit(&self) { - let mut best_block = self.best_block.write(); - let mut write_hashes = self.block_hashes.write(); - let mut write_txs = self.transaction_addresses.write(); let mut pending_best_block = self.pending_best_block.write(); let mut pending_write_hashes = self.pending_block_hashes.write(); let mut pending_write_txs = self.pending_transaction_addresses.write(); + + for n in pending_write_hashes.keys() { + self.note_used(CacheID::BlockHashes(*n)); + } + for hash in pending_write_txs.keys() { + self.note_used(CacheID::TransactionAddresses(hash.clone())); + } + + let mut best_block = self.best_block.write(); + let mut write_hashes = self.block_hashes.write(); + let mut write_txs = self.transaction_addresses.write(); // update best block if let Some(block) = pending_best_block.take() { *best_block = block;