Guard QTimer::singleShot

This commit is contained in:
Klaus Basan
2018-05-06 20:24:40 +02:00
committed by Roland Winklmeier
parent 3ecb7b1f94
commit 3f4cb7529c
4 changed files with 33 additions and 8 deletions

View File

@@ -9,6 +9,7 @@
#include "digestsignal.h"
#include "threadutils.h"
#include <QPointer>
namespace BlackMisc
{
@@ -17,7 +18,12 @@ namespace BlackMisc
if (!CThreadUtils::isCurrentThreadObjectThread(this))
{
// call in correct thread
QTimer::singleShot(0, this, &CDigestSignal::inputSignal);
const QPointer<CDigestSignal> myself(this);
QTimer::singleShot(0, this, [ = ]
{
if (!myself) { return; }
this->inputSignal();
});
return;
}
@@ -33,7 +39,7 @@ namespace BlackMisc
{
m_timer.stop();
m_inputsCount = 0;
emit digestSignal();
emit this->digestSignal();
}
void CDigestSignal::init(int maxDelayMs)
@@ -42,5 +48,4 @@ namespace BlackMisc
m_timer.setSingleShot(true);
m_timer.setInterval(maxDelayMs);
}
} // namespace