From 98e67860bccbb6cbcb82a9ad5717b09e900bb01e Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Sun, 7 May 2017 03:18:38 +0100 Subject: [PATCH] T66 Tidying up CBackgroundDataUpdater startup and shutdown by overriding the CContinuousWorker virtual methods that exist for this purpose. --- src/blackcore/db/backgrounddataupdater.cpp | 17 +++++++++++------ src/blackcore/db/backgrounddataupdater.h | 6 ++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/blackcore/db/backgrounddataupdater.cpp b/src/blackcore/db/backgrounddataupdater.cpp index a41c1673f..d43816e55 100644 --- a/src/blackcore/db/backgrounddataupdater.cpp +++ b/src/blackcore/db/backgrounddataupdater.cpp @@ -37,9 +37,20 @@ namespace BlackCore CContinuousWorker(owner, "Background data updater") { connect(&m_updateTimer, &QTimer::timeout, this, &CBackgroundDataUpdater::doWork); + } + + void CBackgroundDataUpdater::initialize() + { m_updateTimer.start(60 * 1000); } + void CBackgroundDataUpdater::cleanup() + { + m_updateTimer.stop(); + m_shutdown = true; + m_enabled = false; + } + CBackgroundDataUpdater::~CBackgroundDataUpdater() { gracefulShutdown(); @@ -60,18 +71,12 @@ namespace BlackCore void CBackgroundDataUpdater::gracefulShutdown() { - if (m_shutdown) { return; } m_shutdown = true; m_enabled = false; if (!CThreadUtils::isCurrentThreadObjectThread(this)) { this->abandonAndWait(); } - else - { - // timer needs to be stopped in its own thread - m_updateTimer.stop(); - } } void CBackgroundDataUpdater::startUpdating(int updateTimeSecs) diff --git a/src/blackcore/db/backgrounddataupdater.h b/src/blackcore/db/backgrounddataupdater.h index 146e9d82c..a3ba35f7b 100644 --- a/src/blackcore/db/backgrounddataupdater.h +++ b/src/blackcore/db/backgrounddataupdater.h @@ -38,6 +38,12 @@ namespace BlackCore //! Destructor virtual ~CBackgroundDataUpdater(); + //! \copydoc BlackMisc::CContinuousWorker::initialize + virtual void initialize() override; + + //! \copydoc BlackMisc::CContinuousWorker::cleanup + virtual void cleanup() override; + //! Is shutting down? //! \threadsafe bool isShuttingDown() const;