Fix a race condition.

This commit is contained in:
JoelKatz
2013-03-05 06:46:30 -08:00
parent 4cf7a3b049
commit 7f6305a6ab

View File

@@ -165,7 +165,10 @@ void LedgerMaster::asyncAccept(Ledger::pointer ledger)
{ {
if (theApp->isShutdown()) if (theApp->isShutdown())
return; return;
mCompleteLedgers.setRange(minHas, maxHas); {
boost::recursive_mutex::scoped_lock ml(mLock);
mCompleteLedgers.setRange(minHas, maxHas);
}
maxHas = minHas; maxHas = minHas;
ledgerHashes = Ledger::getHashesByIndex((seq < 500) ? 0 : (seq - 499), seq); ledgerHashes = Ledger::getHashesByIndex((seq < 500) ? 0 : (seq - 499), seq);
it = ledgerHashes.find(seq); it = ledgerHashes.find(seq);
@@ -177,7 +180,11 @@ void LedgerMaster::asyncAccept(Ledger::pointer ledger)
break; break;
prevHash = it->second.second; prevHash = it->second.second;
} }
mCompleteLedgers.setRange(minHas, maxHas);
{
boost::recursive_mutex::scoped_lock ml(mLock);
mCompleteLedgers.setRange(minHas, maxHas);
}
resumeAcquiring(); resumeAcquiring();
} }