aboutsummaryrefslogtreecommitdiff
path: root/src/blockchain_db/blockchain_db.cpp
diff options
context:
space:
mode:
authorwarptangent <warptangent@tutanota.com>2016-02-08 08:32:36 -0800
committerwarptangent <warptangent@tutanota.com>2016-02-08 09:28:15 -0800
commitfd46c96dce043cbf9f018f59ac9cedb12f6a4286 (patch)
treea52d21a9cc54ec03c2950b1db4505ce60ad6ebc7 /src/blockchain_db/blockchain_db.cpp
parentBlockchainDB/LMDB/BDB: Extract DB txn functions for block add/remove (diff)
downloadmonero-fd46c96dce043cbf9f018f59ac9cedb12f6a4286.tar.xz
BlockchainDB/LMDB: Refactor block-scope DB txn handling for add block
Move block-scope txn start and stop from BlockchainLMDB to BlockchainDB.
Diffstat (limited to '')
-rw-r--r--src/blockchain_db/blockchain_db.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/blockchain_db/blockchain_db.cpp b/src/blockchain_db/blockchain_db.cpp
index 3737dfc4f..b504f946a 100644
--- a/src/blockchain_db/blockchain_db.cpp
+++ b/src/blockchain_db/blockchain_db.cpp
@@ -99,6 +99,8 @@ uint64_t BlockchainDB::add_block( const block& blk
, const std::vector<transaction>& txs
)
{
+ block_txn_start();
+
TIME_MEASURE_START(time1);
crypto::hash blk_hash = get_block_hash(blk);
TIME_MEASURE_FINISH(time1);
@@ -125,9 +127,15 @@ uint64_t BlockchainDB::add_block( const block& blk
TIME_MEASURE_FINISH(time1);
time_add_transaction += time1;
+ // DB's new height based on this added block is only incremented after this
+ // function returns, so height() here returns the new previous height.
+ uint64_t prev_height = height();
+
+ block_txn_stop();
+
++num_calls;
- return height();
+ return prev_height;
}
void BlockchainDB::pop_block(block& blk, std::vector<transaction>& txs)