lock contention parity

This commit is contained in:
Valentin Balaschenko
2026-07-06 13:44:44 +01:00
parent 8367816c33
commit 86dbe6981f

View File

@@ -504,17 +504,25 @@ LedgerHistory::clearLedgerCachePrior(LedgerIndex seq)
std::size_t cacheSize = 0;
std::size_t indexSize = 0;
std::vector<LedgerHash> keys;
{
auto lock = ledger_maps_.lock();
for (LedgerHash it : lock->by_hash->getKeys())
keys = lock->by_hash->getKeys();
}
for (LedgerHash const& it : keys)
{
auto const ledger = getLedgerByHash(it);
if (!ledger || ledger->header().seq < seq)
{
auto const ledger = getLedgerByHash(it);
if (!ledger || ledger->header().seq < seq)
{
lock->by_hash->del(it, false);
++hashesCleared;
}
auto lock = ledger_maps_.lock();
lock->by_hash->del(it, false);
++hashesCleared;
}
}
{
auto lock = ledger_maps_.lock();
cacheSize = lock->by_hash->size();
auto it = lock->by_index.begin();