0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-13 11:25:02 -05:00

Collapse the 2 cs_main locks in LoadChainstate

This commit is contained in:
Carl Dong 2021-11-12 18:25:54 -05:00
parent 3b1584b794
commit 89bec827fd

View file

@ -113,14 +113,13 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
assert(chainstate->m_chain.Tip() != nullptr); assert(chainstate->m_chain.Tip() != nullptr);
} }
} }
}
if (!fReset) { if (!fReset) {
LOCK(cs_main); auto chainstates{chainman.GetAll()};
auto chainstates{chainman.GetAll()}; if (std::any_of(chainstates.begin(), chainstates.end(),
if (std::any_of(chainstates.begin(), chainstates.end(), [](const CChainState* cs) EXCLUSIVE_LOCKS_REQUIRED(cs_main) { return cs->NeedsRedownload(); })) {
[](const CChainState* cs) EXCLUSIVE_LOCKS_REQUIRED(cs_main) { return cs->NeedsRedownload(); })) { return ChainstateLoadingError::ERROR_BLOCKS_WITNESS_INSUFFICIENTLY_VALIDATED;
return ChainstateLoadingError::ERROR_BLOCKS_WITNESS_INSUFFICIENTLY_VALIDATED; }
} }
} }