From f9f70d91e367b68dfa20b111e767689ad3b1d88e Mon Sep 17 00:00:00 2001 From: f4exb Date: Fri, 11 Sep 2020 00:27:53 +0200 Subject: [PATCH] Test Source: fixed worker lifecycle. Fixes issue #626 --- .../samplesource/testsource/testsourceinput.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/plugins/samplesource/testsource/testsourceinput.cpp b/plugins/samplesource/testsource/testsourceinput.cpp index 08d973fc2..415c7f652 100644 --- a/plugins/samplesource/testsource/testsourceinput.cpp +++ b/plugins/samplesource/testsource/testsourceinput.cpp @@ -50,6 +50,9 @@ TestSourceInput::TestSourceInput(DeviceAPI *deviceAPI) : qCritical("TestSourceInput::TestSourceInput: Could not allocate SampleFifo"); } + m_testSourceWorker = new TestSourceWorker(&m_sampleFifo); + m_testSourceWorker->moveToThread(&m_testSourceWorkerThread); + m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); } @@ -62,6 +65,8 @@ TestSourceInput::~TestSourceInput() if (m_running) { stop(); } + + m_testSourceWorker->deleteLater(); } void TestSourceInput::destroy() @@ -82,8 +87,6 @@ bool TestSourceInput::start() stop(); } - m_testSourceWorker = new TestSourceWorker(&m_sampleFifo); - m_testSourceWorker->moveToThread(&m_testSourceWorkerThread); m_testSourceWorker->setSamplerate(m_settings.m_sampleRate); startWorker(); @@ -98,14 +101,7 @@ bool TestSourceInput::start() void TestSourceInput::stop() { QMutexLocker mutexLocker(&m_mutex); - - if (m_testSourceWorker) - { - stopWorker(); - m_testSourceWorker->deleteLater(); - m_testSourceWorker = nullptr; - } - + stopWorker(); m_running = false; }