diff options
author | Jon Atack <jon@atack.com> | 2021-10-21 16:56:34 +0200 |
---|---|---|
committer | Jon Atack <jon@atack.com> | 2022-01-25 20:43:19 +0100 |
commit | 2e557ced2830fc54476e598d52225f1679205e7d (patch) | |
tree | 04880e45f0d5fd0fc3d1c27a7758ed969749ac97 /src/node/blockstorage.h | |
parent | 6fd4341c10b319399c58d71c4ddeae4417e337d7 (diff) | |
download | bitcoin-2e557ced2830fc54476e598d52225f1679205e7d.tar.xz |
Require WriteUndoDataForBlock() to hold mutex cs_main
Mutex cs_main is already held by the caller of WriteUndoDataForBlock().
This change is needed to require CBlockIndex::GetUndoPos() to hold
cs_main and CBlockIndex::nStatus to be guarded by cs_main in the
following commits without adding 2 unnecessary cs_main locks to
WriteUndoDataForBlock().
Diffstat (limited to 'src/node/blockstorage.h')
-rw-r--r-- | src/node/blockstorage.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/node/blockstorage.h b/src/node/blockstorage.h index 78c9210892..69c97f5d56 100644 --- a/src/node/blockstorage.h +++ b/src/node/blockstorage.h @@ -7,12 +7,15 @@ #include <fs.h> #include <protocol.h> // For CMessageHeader::MessageStartChars +#include <sync.h> #include <txdb.h> #include <atomic> #include <cstdint> #include <vector> +extern RecursiveMutex cs_main; + class ArgsManager; class BlockValidationState; class CBlock; @@ -146,7 +149,8 @@ public: /** Get block file info entry for one block file */ CBlockFileInfo* GetBlockFileInfo(size_t n); - bool WriteUndoDataForBlock(const CBlockUndo& blockundo, BlockValidationState& state, CBlockIndex* pindex, const CChainParams& chainparams); + bool WriteUndoDataForBlock(const CBlockUndo& blockundo, BlockValidationState& state, CBlockIndex* pindex, const CChainParams& chainparams) + EXCLUSIVE_LOCKS_REQUIRED(::cs_main); FlatFilePos SaveBlockToDisk(const CBlock& block, int nHeight, CChain& active_chain, const CChainParams& chainparams, const FlatFilePos* dbp); |