Deadlock fix.

This commit is contained in:
JoelKatz
2013-05-23 02:03:31 -07:00
parent 62751f8eef
commit 7dc3335147
2 changed files with 4 additions and 3 deletions

View File

@@ -612,7 +612,7 @@ void Peer::processReadBuffer()
event->reName("Peer::ledgerdata");
boost::shared_ptr<ripple::TMLedgerData> msg = boost::make_shared<ripple::TMLedgerData>();
if (msg->ParseFromArray(&mReadbuf[HEADER_SIZE], mReadbuf.size() - HEADER_SIZE))
recvLedger(msg);
recvLedger(msg, sl);
else
cLog(lsWARNING) << "parse error: " << type;
}
@@ -1663,8 +1663,9 @@ void Peer::recvGetLedger(ripple::TMGetLedger& packet, ScopedLock& MasterLockHold
sendPacket(oPacket, true);
}
void Peer::recvLedger(const boost::shared_ptr<ripple::TMLedgerData>& packet_ptr)
void Peer::recvLedger(const boost::shared_ptr<ripple::TMLedgerData>& packet_ptr, ScopedLock& MasterLockHolder)
{
MasterLockHolder.unlock();
ripple::TMLedgerData& packet = *packet_ptr;
if (packet.nodes().size() <= 0)
{

View File

@@ -101,7 +101,7 @@ protected:
void recvGetAccount(ripple::TMGetAccount& packet);
void recvAccount(ripple::TMAccount& packet);
void recvGetLedger(ripple::TMGetLedger& packet, ScopedLock& MasterLockHolder);
void recvLedger(const boost::shared_ptr<ripple::TMLedgerData>& packet);
void recvLedger(const boost::shared_ptr<ripple::TMLedgerData>& packet, ScopedLock& MasterLockHolder);
void recvStatus(ripple::TMStatusChange& packet);
void recvPropose(const boost::shared_ptr<ripple::TMProposeSet>& packet);
void recvHaveTxSet(ripple::TMHaveTransactionSet& packet);