Skip to content

Commit c71494c

Browse files
committed
MAINT: onverting covariance plugin
1 parent 461d4a5 commit c71494c

File tree

4 files changed

+16
-8
lines changed

4 files changed

+16
-8
lines changed

applications/mne_scan/plugins/averaging/averaging.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ Averaging::Averaging()
8585

8686
Averaging::~Averaging()
8787
{
88-
if(m_OutputProcessingThread.joinable())
88+
if(m_bProcessOutput)
8989
stop();
9090
}
9191

applications/mne_scan/plugins/covariance/covariance.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ Covariance::Covariance()
8989

9090
Covariance::~Covariance()
9191
{
92-
if(this->isRunning())
92+
if(m_bProcessOutput)
9393
stop();
9494
}
9595

@@ -158,7 +158,8 @@ void Covariance::unload()
158158
bool Covariance::start()
159159
{
160160
// Start thread
161-
QThread::start();
161+
m_bProcessOutput = true;
162+
m_OutputProcessingThread = std::thread(&Covariance::run, this);
162163

163164
return true;
164165
}
@@ -167,8 +168,10 @@ bool Covariance::start()
167168

168169
bool Covariance::stop()
169170
{
170-
requestInterruption();
171-
wait(500);
171+
if(m_OutputProcessingThread.joinable()){
172+
m_bProcessOutput = false;
173+
m_OutputProcessingThread.join();
174+
}
172175

173176
m_bPluginControlWidgetsInit = false;
174177

@@ -249,7 +252,7 @@ void Covariance::run()
249252
break;
250253
}
251254
m_mutex.unlock();
252-
msleep(100);
255+
std::this_thread::sleep_for(std::chrono::milliseconds(100));
253256
}
254257

255258
MatrixXd matData;
@@ -260,7 +263,7 @@ void Covariance::run()
260263
RTPROCESSINGLIB::RtCov rtCov(m_pFiffInfo);
261264

262265
// Start processing data
263-
while(!isInterruptionRequested()) {
266+
while(m_bProcessOutput) {
264267
// Get the current data
265268
if(m_pCircularBuffer->pop(matData)) {
266269
m_mutex.lock();

applications/mne_scan/plugins/covariance/covariance.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545
#include <scShared/Plugins/abstractalgorithm.h>
4646
#include <utils/generics/circularbuffer.h>
4747

48+
#include <thread>
49+
4850
//=============================================================================================================
4951
// EIGEN INCLUDES
5052
//=============================================================================================================
@@ -164,6 +166,9 @@ class COVARIANCESHARED_EXPORT Covariance : public SCSHAREDLIB::AbstractAlgorithm
164166
QSharedPointer<SCSHAREDLIB::PluginInputData<SCMEASLIB::RealTimeMultiSampleArray> > m_pCovarianceInput; /**< The RealTimeMultiSampleArray of the Covariance input.*/
165167
QSharedPointer<SCSHAREDLIB::PluginOutputData<SCMEASLIB::RealTimeCov> > m_pCovarianceOutput; /**< The RealTimeCov of the Covariance output.*/
166168

169+
std::thread m_OutputProcessingThread;
170+
std::atomic_bool m_bProcessOutput;
171+
167172
signals:
168173
};
169174
} // NAMESPACE

applications/mne_scan/plugins/fiffsimulator/fiffsimulator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ FiffSimulator::FiffSimulator()
9898

9999
FiffSimulator::~FiffSimulator()
100100
{
101-
if(m_pFiffSimulatorProducer->isRunning() || m_OutputProcessingThread.joinable()) {
101+
if(m_pFiffSimulatorProducer->isRunning() || m_bProcessOutput) {
102102
stop();
103103
}
104104
}

0 commit comments

Comments
 (0)