From eccd736f3dc231ac0306ca763c3b72cf8247230a Mon Sep 17 00:00:00 2001 From: Anthony Towns Date: Tue, 29 Dec 2020 22:43:18 +1000 Subject: versionbits: Use dedicated lock instead of cs_main --- src/versionbits.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/versionbits.cpp') diff --git a/src/versionbits.cpp b/src/versionbits.cpp index df2ec4e056..07ecc93c93 100644 --- a/src/versionbits.cpp +++ b/src/versionbits.cpp @@ -192,6 +192,7 @@ public: ThresholdState VersionBitsState(const CBlockIndex* pindexPrev, const Consensus::Params& params, Consensus::DeploymentPos pos, VersionBitsCache& cache) { + LOCK(cache.mutex); return VersionBitsConditionChecker(pos).GetStateFor(pindexPrev, params, cache.caches[pos]); } @@ -202,6 +203,7 @@ BIP9Stats VersionBitsStatistics(const CBlockIndex* pindexPrev, const Consensus:: int VersionBitsStateSinceHeight(const CBlockIndex* pindexPrev, const Consensus::Params& params, Consensus::DeploymentPos pos, VersionBitsCache& cache) { + LOCK(cache.mutex); return VersionBitsConditionChecker(pos).GetStateSinceHeightFor(pindexPrev, params, cache.caches[pos]); } @@ -212,6 +214,7 @@ uint32_t VersionBitsMask(const Consensus::Params& params, Consensus::DeploymentP void VersionBitsCache::Clear() { + LOCK(mutex); for (unsigned int d = 0; d < Consensus::MAX_VERSION_BITS_DEPLOYMENTS; d++) { caches[d].clear(); } -- cgit v1.2.3