diff options
author | practicalswift <practicalswift@users.noreply.github.com> | 2019-01-17 16:13:58 -0500 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2019-02-01 15:32:16 -0500 |
commit | fa2a69fcb92c7f13c07f982c46df8a64e577dab9 (patch) | |
tree | e2820199a1048889cf26a8f46b193699b4649ccb /src | |
parent | 3e38d4087379edd1c0730d058902f527d5da6358 (diff) |
doc: Add cs_main lock annotations for mapBlockIndex
Diffstat (limited to 'src')
-rw-r--r-- | src/validation.cpp | 2 | ||||
-rw-r--r-- | src/validation.h | 4 | ||||
-rw-r--r-- | src/wallet/test/wallet_tests.cpp | 3 |
3 files changed, 6 insertions, 3 deletions
diff --git a/src/validation.cpp b/src/validation.cpp index de9c0d96db..dbdc1afb35 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -152,7 +152,7 @@ private: public: CChain chainActive; - BlockMap mapBlockIndex; + BlockMap mapBlockIndex GUARDED_BY(cs_main); std::multimap<CBlockIndex*, CBlockIndex*> mapBlocksUnlinked; CBlockIndex *pindexBestInvalid = nullptr; diff --git a/src/validation.h b/src/validation.h index b16d8438d7..49f73e4c9b 100644 --- a/src/validation.h +++ b/src/validation.h @@ -151,7 +151,7 @@ extern CBlockPolicyEstimator feeEstimator; extern CTxMemPool mempool; extern std::atomic_bool g_is_mempool_loaded; typedef std::unordered_map<uint256, CBlockIndex*, BlockHasher> BlockMap; -extern BlockMap& mapBlockIndex; +extern BlockMap& mapBlockIndex GUARDED_BY(cs_main); extern uint64_t nLastBlockTx; extern uint64_t nLastBlockWeight; extern const std::string strMessageMagic; @@ -288,7 +288,7 @@ uint64_t CalculateCurrentUsage(); /** * Mark one block file as pruned. */ -void PruneOneBlockFile(const int fileNumber); +void PruneOneBlockFile(const int fileNumber) EXCLUSIVE_LOCKS_REQUIRED(cs_main); /** * Actually unlink the specified files diff --git a/src/wallet/test/wallet_tests.cpp b/src/wallet/test/wallet_tests.cpp index 8c380f1257..2fe79bece7 100644 --- a/src/wallet/test/wallet_tests.cpp +++ b/src/wallet/test/wallet_tests.cpp @@ -44,6 +44,7 @@ BOOST_FIXTURE_TEST_CASE(scan_for_wallet_transactions, TestChain100Setup) CreateAndProcessBlock({}, GetScriptForRawPubKey(coinbaseKey.GetPubKey())); CBlockIndex* newTip = chainActive.Tip(); + LockAnnotation lock(::cs_main); auto locked_chain = chain->lock(); // Verify ScanForWalletTransactions accommodates a null start block. @@ -123,6 +124,7 @@ BOOST_FIXTURE_TEST_CASE(importmulti_rescan, TestChain100Setup) CreateAndProcessBlock({}, GetScriptForRawPubKey(coinbaseKey.GetPubKey())); CBlockIndex* newTip = chainActive.Tip(); + LockAnnotation lock(::cs_main); auto locked_chain = chain->lock(); // Prune the older block file. @@ -268,6 +270,7 @@ static int64_t AddTx(CWallet& wallet, uint32_t lockTime, int64_t mockTime, int64 SetMockTime(mockTime); CBlockIndex* block = nullptr; if (blockTime > 0) { + LockAnnotation lock(::cs_main); auto locked_chain = wallet.chain().lock(); auto inserted = mapBlockIndex.emplace(GetRandHash(), new CBlockIndex); assert(inserted.second); |