From 89bec827fdea1cedd560be85201f04e0a78aa48d Mon Sep 17 00:00:00 2001 From: Carl Dong Date: Fri, 12 Nov 2021 18:25:54 -0500 Subject: Collapse the 2 cs_main locks in LoadChainstate --- src/node/chainstate.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/node') diff --git a/src/node/chainstate.cpp b/src/node/chainstate.cpp index 7cb452a910..ce1128d9f6 100644 --- a/src/node/chainstate.cpp +++ b/src/node/chainstate.cpp @@ -113,14 +113,13 @@ std::optional LoadChainstate(bool fReset, assert(chainstate->m_chain.Tip() != nullptr); } } - } - if (!fReset) { - LOCK(cs_main); - auto chainstates{chainman.GetAll()}; - if (std::any_of(chainstates.begin(), chainstates.end(), - [](const CChainState* cs) EXCLUSIVE_LOCKS_REQUIRED(cs_main) { return cs->NeedsRedownload(); })) { - return ChainstateLoadingError::ERROR_BLOCKS_WITNESS_INSUFFICIENTLY_VALIDATED; + if (!fReset) { + auto chainstates{chainman.GetAll()}; + if (std::any_of(chainstates.begin(), chainstates.end(), + [](const CChainState* cs) EXCLUSIVE_LOCKS_REQUIRED(cs_main) { return cs->NeedsRedownload(); })) { + return ChainstateLoadingError::ERROR_BLOCKS_WITNESS_INSUFFICIENTLY_VALIDATED; + } } } -- cgit v1.2.3