validation: No mempool clearing in UnloadBlockIndex

The only caller that uses this is ~ChainTestingSetup() where we
immediately destroy the mempool afterwards.
This commit is contained in:
Carl Dong 2022-01-11 15:11:56 -05:00
parent 572d831927
commit 7d99d725cd
4 changed files with 5 additions and 6 deletions

View File

@ -256,7 +256,7 @@ epilogue:
}
GetMainSignals().UnregisterBackgroundSignalScheduler();
WITH_LOCK(::cs_main, UnloadBlockIndex(nullptr, chainman));
WITH_LOCK(::cs_main, UnloadBlockIndex(chainman));
init::UnsetGlobals();
}

View File

@ -182,7 +182,7 @@ ChainTestingSetup::~ChainTestingSetup()
m_node.addrman.reset();
m_node.netgroupman.reset();
m_node.args = nullptr;
WITH_LOCK(::cs_main, UnloadBlockIndex(m_node.mempool.get(), *m_node.chainman));
WITH_LOCK(::cs_main, UnloadBlockIndex(*m_node.chainman));
m_node.mempool.reset();
m_node.scheduler.reset();
m_node.chainman.reset();

View File

@ -4146,11 +4146,10 @@ void CChainState::UnloadBlockIndex()
// May NOT be used after any connections are up as much
// of the peer-processing logic assumes a consistent
// block index state
void UnloadBlockIndex(CTxMemPool* mempool, ChainstateManager& chainman)
void UnloadBlockIndex(ChainstateManager& chainman)
{
AssertLockHeld(::cs_main);
chainman.Unload();
if (mempool) mempool->clear();
}
bool ChainstateManager::LoadBlockIndex()
@ -5231,7 +5230,7 @@ void ChainstateManager::MaybeRebalanceCaches()
ChainstateManager::~ChainstateManager()
{
LOCK(::cs_main);
UnloadBlockIndex(/*mempool=*/nullptr, *this);
UnloadBlockIndex(*this);
// TODO: The version bits cache and warning cache should probably become
// non-globals

View File

@ -135,7 +135,7 @@ extern arith_uint256 nMinimumChainWork;
extern const std::vector<std::string> CHECKLEVEL_DOC;
/** Unload database information */
void UnloadBlockIndex(CTxMemPool* mempool, ChainstateManager& chainman) EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
void UnloadBlockIndex(ChainstateManager& chainman) EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
/** Run instances of script checking worker threads */
void StartScriptCheckWorkerThreads(int threads_num);
/** Stop all of the script checking worker threads */