mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-16 08:22:46 +00:00
Clear {versionbits,warning}cache in ~Chainstatemanager
Also add TODO item to deglobalize the {versionbits,warning}cache, which
should really only need to be cleared if we change the chainparams.
This commit is contained in:
parent
eca4ca4d60
commit
572d831927
@ -4151,10 +4151,6 @@ void UnloadBlockIndex(CTxMemPool* mempool, ChainstateManager& chainman)
|
||||
AssertLockHeld(::cs_main);
|
||||
chainman.Unload();
|
||||
if (mempool) mempool->clear();
|
||||
g_versionbitscache.Clear();
|
||||
for (auto& i : warningcache) {
|
||||
i.clear();
|
||||
}
|
||||
}
|
||||
|
||||
bool ChainstateManager::LoadBlockIndex()
|
||||
@ -5231,3 +5227,16 @@ void ChainstateManager::MaybeRebalanceCaches()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ChainstateManager::~ChainstateManager()
|
||||
{
|
||||
LOCK(::cs_main);
|
||||
UnloadBlockIndex(/*mempool=*/nullptr, *this);
|
||||
|
||||
// TODO: The version bits cache and warning cache should probably become
|
||||
// non-globals
|
||||
g_versionbitscache.Clear();
|
||||
for (auto& i : warningcache) {
|
||||
i.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@ -995,10 +995,7 @@ public:
|
||||
//! ResizeCoinsCaches() as needed.
|
||||
void MaybeRebalanceCaches() EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
|
||||
|
||||
~ChainstateManager() {
|
||||
LOCK(::cs_main);
|
||||
UnloadBlockIndex(/*mempool=*/nullptr, *this);
|
||||
}
|
||||
~ChainstateManager();
|
||||
};
|
||||
|
||||
using FopenFn = std::function<FILE*(const fs::path&, const char*)>;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user