Don't let OrderBookDB oscillate between two ledgers.

This commit is contained in:
David Schwartz
2013-10-03 17:49:38 -07:00
parent 9b3c74a095
commit 951a8208b8

View File

@@ -40,8 +40,17 @@ void OrderBookDB::setup (Ledger::ref ledger)
ScopedLockType sl (mLock, __FILE__, __LINE__);
// Do a full update every 256 ledgers
if ((mSeq != 0) && (ledger->getLedgerSeq () >= mSeq) && ((ledger->getLedgerSeq() - mSeq) < 256))
return;
if (mSeq != 0)
{
if (ledger->getLedgerSeq () == mSeq)
return;
if ((ledger->getLedgerSeq () > mSeq) && ((ledger->getLedgerSeq () - mSeq) < 256))
return;
if ((ledger->getLedgerSeq () < mSeq) && ((mSeq - ledger->getLedgerSeq ()) < 16))
return;
}
WriteLog (lsDEBUG, OrderBookDB) << "Advancing from " << mSeq << " to " << ledger->getLedgerSeq();
mSeq = ledger->getLedgerSeq ();
}