From 661254371c1dd1fba933923ab945f5f521d3a917 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Fri, 12 Aug 2016 21:37:13 +0100 Subject: [PATCH] refs #730 Avoid duplicate "empty cache value" debug messages. --- src/blackmisc/valuecache.cpp | 15 ++++++++++++++- src/blackmisc/valuecache.h | 4 ++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/blackmisc/valuecache.cpp b/src/blackmisc/valuecache.cpp index d8df4ec7b..e8067e8e4 100644 --- a/src/blackmisc/valuecache.cpp +++ b/src/blackmisc/valuecache.cpp @@ -567,7 +567,20 @@ namespace BlackMisc if (!status.isEmpty()) // intentionally kept !empty here, debug message supposed to write default value { element.m_value.uniqueWrite() = defaultValue; - CLogMessage::preformatted(status); + + if (status.getSeverity() == CStatusMessage::SeverityDebug) + { + QMutexLocker lock(&m_cache->m_warnedKeysMutex); + if (! m_cache->m_warnedKeys.contains(key)) + { + m_cache->m_warnedKeys.insert(key); + CLogMessage::preformatted(status); + } + } + else + { + CLogMessage::preformatted(status); + } } return element; diff --git a/src/blackmisc/valuecache.h b/src/blackmisc/valuecache.h index 4fe782342..4c47ec169 100644 --- a/src/blackmisc/valuecache.h +++ b/src/blackmisc/valuecache.h @@ -314,6 +314,10 @@ namespace BlackMisc virtual void connectPage(Private::CValuePage *page); + // only used by CValuePage::createElement + QSet m_warnedKeys; + QMutex m_warnedKeysMutex; + signals: //! \private void valuesChanged(const BlackMisc::CValueCachePacket &values, QObject *changedBy);