diff --git a/app/ResourceHandle.cpp b/app/ResourceHandle.cpp index 7794620..19f3c01 100644 --- a/app/ResourceHandle.cpp +++ b/app/ResourceHandle.cpp @@ -38,12 +38,11 @@ ResourceWorker::ResourceWorker( std::shared_ptr stream ) : m_pcStream{ stream } { - m_bStop.clear(); } void ResourceWorker::stop() { - m_bStop.test_and_set(); + m_bStop = false; wake(); wait(); } @@ -57,9 +56,10 @@ void ResourceWorker::wake() void ResourceWorker::run() { - m_bStop.clear(); + m_bStop = false; + // Loop forever - while( !m_bStop.test() ) + while( !m_bStop ) { // auto start = std::chrono::steady_clock::now(); m_pcStream->readNextFrameFillRGBBuffer(); @@ -68,7 +68,7 @@ void ResourceWorker::run() // << std::chrono::duration_cast( end - start ).count() // << " ms" << std::endl; - while( !m_bStop.test() && !m_pcStream->hasWritingSlot() ) + while( !m_bStop && !m_pcStream->hasWritingSlot() ) { // Wait here m_Mutex.lock(); diff --git a/app/ResourceHandle.h b/app/ResourceHandle.h index df8302c..2d1aeb8 100644 --- a/app/ResourceHandle.h +++ b/app/ResourceHandle.h @@ -40,7 +40,7 @@ private: QMutex m_Mutex; QWaitCondition m_ResourceIdle; std::shared_ptr m_pcStream; - std::atomic_flag m_bStop; + std::atomic m_bStop{ false }; public: ResourceWorker( std::shared_ptr stream );