From 481833b003f2844b7a35744df1ee1032cf715689 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 27 Jan 2020 15:13:14 +0100 Subject: [PATCH] BLACK_AUDIT_X for killTimer, trace Qt killTimer warnings in "our" code --- src/blackcore/simulator.cpp | 1 + src/blackgui/loadindicator.cpp | 20 ++++++++++++++++---- src/blackmisc/filedeleter.cpp | 8 +++++++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/blackcore/simulator.cpp b/src/blackcore/simulator.cpp index f46a16910..c770239c7 100644 --- a/src/blackcore/simulator.cpp +++ b/src/blackcore/simulator.cpp @@ -314,6 +314,7 @@ namespace BlackCore void ISimulator::safeKillTimer() { if (m_timerId < 0) { return; } + BLACK_AUDIT_X(CThreadUtils::isCurrentThreadObjectThread(this), Q_FUNC_INFO, "Try to kill timer from another thread"); this->killTimer(m_timerId); m_timerId = -1; } diff --git a/src/blackgui/loadindicator.cpp b/src/blackgui/loadindicator.cpp index 829dd0e43..40a9f5bfe 100644 --- a/src/blackgui/loadindicator.cpp +++ b/src/blackgui/loadindicator.cpp @@ -10,6 +10,8 @@ #include "loadindicator.h" #include "guiapplication.h" +#include "blackmisc/verify.h" +#include "blackmisc/threadutils.h" #include #include @@ -18,6 +20,8 @@ #include #include +using namespace BlackMisc; + namespace BlackGui { CLoadIndicator::CLoadIndicator(int width, int height, QWidget *parent) @@ -86,7 +90,11 @@ namespace BlackGui if (!m_pendingIds.isEmpty()) { return; } } m_pendingIds.clear(); - if (m_timerId != -1) { killTimer(m_timerId); } + if (m_timerId != -1) + { + BLACK_AUDIT_X(CThreadUtils::isCurrentThreadObjectThread(this), Q_FUNC_INFO, "Try to kill timer from another thread"); + this->killTimer(m_timerId); + } m_timerId = -1; this->hide(); this->setEnabled(false); @@ -96,7 +104,11 @@ namespace BlackGui void CLoadIndicator::setAnimationDelay(int delay) { m_delayMs = delay; - if (m_timerId != -1) { this->killTimer(m_timerId); } + if (m_timerId != -1) + { + BLACK_AUDIT_X(CThreadUtils::isCurrentThreadObjectThread(this), Q_FUNC_INFO, "Try to kill timer from another thread"); + this->killTimer(m_timerId); + } m_timerId = this->startTimer(m_delayMs); } @@ -118,14 +130,14 @@ namespace BlackGui void CLoadIndicator::timerEvent(QTimerEvent *event) { - Q_UNUSED(event); + Q_UNUSED(event) m_angle = (m_angle + 30) % 360; this->update(); } void CLoadIndicator::paintEvent(QPaintEvent *event) { - Q_UNUSED(event); + Q_UNUSED(event) QPainter p(this); this->paint(p); } diff --git a/src/blackmisc/filedeleter.cpp b/src/blackmisc/filedeleter.cpp index df0742567..0d9691b66 100644 --- a/src/blackmisc/filedeleter.cpp +++ b/src/blackmisc/filedeleter.cpp @@ -7,6 +7,8 @@ */ #include "blackmisc/filedeleter.h" +#include "blackmisc/threadutils.h" +#include "blackmisc/verify.h" #include #include @@ -58,7 +60,11 @@ namespace BlackMisc void CTimedFileDeleter::timerEvent(QTimerEvent *event) { Q_UNUSED(event) - if (m_timerId > 0) { this->killTimer(m_timerId); } + if (m_timerId >= 0) + { + BLACK_AUDIT_X(CThreadUtils::isCurrentThreadObjectThread(this), Q_FUNC_INFO, "Try to kill timer from another thread"); + this->killTimer(m_timerId); + } m_timerId = -1; m_fileDeleter.deleteFiles(); this->deleteLater();