From 00e2ac829863aad39cea18e4065eeb6335b6aec9 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Tue, 2 Apr 2013 13:41:42 -0700 Subject: [PATCH] Fix a race applying connections to the open ledger. --- src/cpp/ripple/LedgerMaster.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/cpp/ripple/LedgerMaster.cpp b/src/cpp/ripple/LedgerMaster.cpp index 7fa42d7d35..a9471493a7 100644 --- a/src/cpp/ripple/LedgerMaster.cpp +++ b/src/cpp/ripple/LedgerMaster.cpp @@ -74,10 +74,10 @@ void LedgerMaster::switchLedgers(Ledger::pointer lastClosed, Ledger::pointer cur mFinalizedLedger->setClosed(); mFinalizedLedger->setAccepted(); mCurrentLedger = current; - } - assert(!mCurrentLedger->isClosed()); - mEngine.setLedger(mCurrentLedger); + assert(!mCurrentLedger->isClosed()); + mEngine.setLedger(mCurrentLedger); + } checkAccept(lastClosed->getHash(), lastClosed->getLedgerSeq()); } @@ -122,6 +122,7 @@ Ledger::pointer LedgerMaster::closeLedger(bool recover) TER LedgerMaster::doTransaction(SerializedTransaction::ref txn, TransactionEngineParams params, bool& didApply) { + boost::recursive_mutex::scoped_lock sl(mLock); TER result = mEngine.applyTransaction(*txn, params, didApply); // if (didApply) theApp->getOPs().pubProposedTransaction(mEngine.getLedger(), txn, result);