From 51e937e678323ceb3079e3ecafb1e8f78e59be11 Mon Sep 17 00:00:00 2001 From: Henri Herscher Date: Mon, 19 Feb 2007 19:32:27 +0000 Subject: Added error throttling on immediate processing enqueuing errors. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@410 09dcff7a-b715-0410-9601-b79a96267cd0 --- orkaudio/ImmediateProcessing.cpp | 12 ++++++++++-- orkaudio/ImmediateProcessing.h | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/orkaudio/ImmediateProcessing.cpp b/orkaudio/ImmediateProcessing.cpp index 181e659..1a6722f 100644 --- a/orkaudio/ImmediateProcessing.cpp +++ b/orkaudio/ImmediateProcessing.cpp @@ -25,6 +25,11 @@ ImmediateProcessing ImmediateProcessing::m_immediateProcessingSingleton; +ImmediateProcessing::ImmediateProcessing() +{ + m_lastQueueFullTime = time(NULL); +} + ImmediateProcessing* ImmediateProcessing::GetInstance() { return &m_immediateProcessingSingleton; @@ -34,8 +39,11 @@ void ImmediateProcessing::AddAudioTape(AudioTapeRef audioTapeRef) { if (!m_audioTapeQueue.push(audioTapeRef)) { - // Log error - LOG4CXX_ERROR(LOG.immediateProcessingLog, CStdString("ImmediateProcessing: queue full")); + if( (time(NULL) - m_lastQueueFullTime) > 10 ) + { + m_lastQueueFullTime = time(NULL); + LOG4CXX_ERROR(LOG.immediateProcessingLog, CStdString("ImmediateProcessing: queue full")); + } } } diff --git a/orkaudio/ImmediateProcessing.h b/orkaudio/ImmediateProcessing.h index 7912535..88c8d55 100644 --- a/orkaudio/ImmediateProcessing.h +++ b/orkaudio/ImmediateProcessing.h @@ -20,6 +20,7 @@ class ImmediateProcessing { public: + ImmediateProcessing(); static ImmediateProcessing* GetInstance(); static void ThreadHandler(void *args); @@ -29,6 +30,7 @@ private: static ImmediateProcessing m_immediateProcessingSingleton; ThreadSafeQueue m_audioTapeQueue; + time_t m_lastQueueFullTime; }; #endif -- cgit v1.2.3