From 062ac500e4adea0b1dec8cc6adcda2af4d1e9e72 Mon Sep 17 00:00:00 2001 From: capitalistspz Date: Mon, 24 Mar 2025 11:19:49 +0000 Subject: [PATCH] Correct mistakes in `CameraManager::Open` and `CameraManager::Close` --- src/camera/CameraManager.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/camera/CameraManager.cpp b/src/camera/CameraManager.cpp index b5c03983..9cca41bd 100644 --- a/src/camera/CameraManager.cpp +++ b/src/camera/CameraManager.cpp @@ -56,21 +56,23 @@ bool CameraManager::Open(bool weak) m_stream = stream; m_captureThread = std::thread(&CameraManager::CaptureWorker, this); } - else if (!weak) + if (!weak) m_refCount += 1; return true; } void CameraManager::Close() { - std::scoped_lock lock(m_mutex); - if (m_refCount == 0) - return; - m_refCount -= 1; - if (m_refCount != 0) - return; - Cap_closeStream(m_ctx, *m_stream); - m_stream = std::nullopt; - m_capturing = false; + { + std::scoped_lock lock(m_mutex); + if (m_refCount == 0) + return; + m_refCount -= 1; + if (m_refCount != 0) + return; + Cap_closeStream(m_ctx, *m_stream); + m_stream = std::nullopt; + m_capturing = false; + } m_captureThread.join(); }