diff --git a/sdrbase/dsp/dspdevicesinkengine.cpp b/sdrbase/dsp/dspdevicesinkengine.cpp index 671dbf4bc..a6384289a 100644 --- a/sdrbase/dsp/dspdevicesinkengine.cpp +++ b/sdrbase/dsp/dspdevicesinkengine.cpp @@ -615,12 +615,14 @@ void DSPDeviceSinkEngine::handleSynchronousMessages() // kv.first = threadedSource; // (threadedSource->getSampleSourceFifo()).getReadIterator(kv.second); // m_threadedBasebandSampleSourcesIteratorMap.insert(kv); - threadedSource->start(); +// threadedSource->start(); } else if (DSPRemoveThreadedSampleSource::match(*message)) { ThreadedBasebandSampleSource* threadedSource = ((DSPRemoveThreadedSampleSource*) message)->getThreadedSampleSource(); - threadedSource->stop(); + if (m_state == StRunning) { + threadedSource->stop(); + } // not used with sample by sample processing // m_threadedBasebandSampleSourcesIteratorMap.erase(threadedSource); m_threadedBasebandSampleSources.remove(threadedSource);