diff --git a/src/cpp/ripple/NetworkOPs.cpp b/src/cpp/ripple/NetworkOPs.cpp index 8855100f1..5651b43da 100644 --- a/src/cpp/ripple/NetworkOPs.cpp +++ b/src/cpp/ripple/NetworkOPs.cpp @@ -985,7 +985,7 @@ void NetworkOPs::pubProposedTransaction(Ledger::ref lpCurrent, const SerializedT Json::Value jvObj = transJson(stTxn, terResult, false, lpCurrent, "transaction"); { - boost::interprocess::sharable_lock sl(mMonitorLock); + boost::recursive_mutex::scoped_lock sl(mMonitorLock); BOOST_FOREACH(InfoSub* ispListener, mSubRTTransactions) { ispListener->send(jvObj); @@ -1005,7 +1005,7 @@ void NetworkOPs::pubLedger(Ledger::ref lpAccepted) LoadEvent::pointer event = theApp->getJobQueue().getLoadEvent(jtPUBLEDGER); { - boost::interprocess::sharable_lock sl(mMonitorLock); + boost::recursive_mutex::scoped_lock sl(mMonitorLock); if (!mSubLedger.empty()) { @@ -1078,7 +1078,7 @@ void NetworkOPs::pubAcceptedTransaction(Ledger::ref lpCurrent, const SerializedT Json::Value jvObj = transJson(stTxn, terResult, true, lpCurrent, "transaction"); { - boost::interprocess::sharable_lock sl(mMonitorLock); + boost::recursive_mutex::scoped_lock sl(mMonitorLock); BOOST_FOREACH(InfoSub* ispListener, mSubTransactions) { ispListener->send(jvObj); @@ -1099,7 +1099,7 @@ void NetworkOPs::pubAccountTransaction(Ledger::ref lpCurrent, const SerializedTr boost::unordered_set notify; { - boost::interprocess::sharable_lock sl(mMonitorLock); + boost::recursive_mutex::scoped_lock sl(mMonitorLock); if(!bAccepted && mSubRTAccount.empty()) return; @@ -1185,7 +1185,7 @@ void NetworkOPs::subAccount(InfoSub* ispListener, const boost::unordered_set sl(mMonitorLock); + boost::recursive_mutex::scoped_lock sl(mMonitorLock); BOOST_FOREACH(const RippleAddress& naAccountID, vnaAccountIDs) { @@ -1210,7 +1210,7 @@ void NetworkOPs::unsubAccount(InfoSub* ispListener, const boost::unordered_set sl(mMonitorLock); + boost::recursive_mutex::scoped_lock sl(mMonitorLock); BOOST_FOREACH(const RippleAddress& naAccountID, vnaAccountIDs) { diff --git a/src/cpp/ripple/NetworkOPs.h b/src/cpp/ripple/NetworkOPs.h index 4826979e1..7dc00bcb8 100644 --- a/src/cpp/ripple/NetworkOPs.h +++ b/src/cpp/ripple/NetworkOPs.h @@ -1,8 +1,7 @@ #ifndef __NETWORK_OPS__ #define __NETWORK_OPS__ -#include -#include +#include #include #include @@ -89,7 +88,7 @@ protected: // XXX Split into more locks. - boost::interprocess::interprocess_upgradable_mutex mMonitorLock; + boost::recursive_mutex mMonitorLock; subInfoMapType mSubAccount; subInfoMapType mSubRTAccount; subSubmitMapType mSubmitMap; // TODO: probably dump this