From e7aef33344eebd0ca0b896b7905ef49ea304edfb Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Sat, 23 Jun 2012 16:55:26 -0700 Subject: [PATCH] Clean up timeout tracking and log acquire timeouts. --- src/LedgerAcquire.cpp | 18 +++++++++++++----- src/LedgerAcquire.h | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/LedgerAcquire.cpp b/src/LedgerAcquire.cpp index 960fa1632..825045bf7 100644 --- a/src/LedgerAcquire.cpp +++ b/src/LedgerAcquire.cpp @@ -61,16 +61,24 @@ void PeerSet::resetTimer() mTimer.async_wait(boost::bind(&PeerSet::TimerEntry, pmDowncast(), boost::asio::placeholders::error)); } +void PeerSet::invokeOnTimer() +{ + if (!mProgress) + { + ++mTimeouts; + Log(lsWARNING) << "Timeout " << mTimeouts << " acquiring " << mHash.GetHex(); + } + else + mProgress = false; + onTimer(); +} + void PeerSet::TimerEntry(boost::weak_ptr wptr, const boost::system::error_code& result) { if (result == boost::asio::error::operation_aborted) return; boost::shared_ptr ptr = wptr.lock(); if (!ptr) return; - if (!ptr->mProgress) - ++ptr->mTimeouts; - else - ptr->mProgress = false; - ptr->onTimer(); + ptr->invokeOnTimer(); } LedgerAcquire::LedgerAcquire(const uint256& hash) : PeerSet(hash, LEDGER_ACQUIRE_TIMEOUT), diff --git a/src/LedgerAcquire.h b/src/LedgerAcquire.h index 01a0c3de0..87e2c86b2 100644 --- a/src/LedgerAcquire.h +++ b/src/LedgerAcquire.h @@ -52,6 +52,7 @@ protected: void setComplete() { mComplete = true; } void setFailed() { mFailed = true; } + void invokeOnTimer(); private: static void TimerEntry(boost::weak_ptr, const boost::system::error_code& result);