From 74bf47c73d60cedb1c4830e017f4e45f711fd896 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Sat, 16 Mar 2013 18:30:26 -0700 Subject: [PATCH] Defer acquire timeouts if ledger data is backing up. --- src/cpp/ripple/LedgerAcquire.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/cpp/ripple/LedgerAcquire.cpp b/src/cpp/ripple/LedgerAcquire.cpp index f91c4952bf..e4d735ca8a 100644 --- a/src/cpp/ripple/LedgerAcquire.cpp +++ b/src/cpp/ripple/LedgerAcquire.cpp @@ -73,13 +73,21 @@ void PeerSet::TimerEntry(boost::weak_ptr wptr, const boost::system::err return; boost::shared_ptr ptr = wptr.lock(); if (ptr) - theApp->getJobQueue().addJob(jtLEDGER_DATA, "timerEntry", + { + int jc = theApp->getJobQueue().getJobCountTotal(jtLEDGER_DATA); + if (jc > 4) + { + cLog(lsDEBUG) << "Deferring PeerSet timer due to load"; + ptr->setTimer(); + } + else theApp->getJobQueue().addJob(jtLEDGER_DATA, "timerEntry", BIND_TYPE(&PeerSet::TimerJobEntry, P_1, ptr)); + } } void PeerSet::TimerJobEntry(Job&, boost::shared_ptr ptr) { - ptr->invokeOnTimer(); + ptr->invokeOnTimer(); } bool PeerSet::isActive()