[libcamera-devel,v2,08/14] py: Use libcamera's Mutex classes
diff mbox series

Message ID 20220629070416.17550-9-tomi.valkeinen@ideasonboard.com
State Superseded
Headers show
Series
  • Python bindings event handling
Related show

Commit Message

Tomi Valkeinen June 29, 2022, 7:04 a.m. UTC
Use libcamera's Mutex and MutexLocker instead of the std versions to get
thread safety annotations.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
 src/py/libcamera/py_camera_manager.cpp | 4 ++--
 src/py/libcamera/py_camera_manager.h   | 7 ++++---
 2 files changed, 6 insertions(+), 5 deletions(-)

Patch
diff mbox series

diff --git a/src/py/libcamera/py_camera_manager.cpp b/src/py/libcamera/py_camera_manager.cpp
index 3d422c9e..5600f661 100644
--- a/src/py/libcamera/py_camera_manager.cpp
+++ b/src/py/libcamera/py_camera_manager.cpp
@@ -104,14 +104,14 @@  void PyCameraManager::readFd()
 
 void PyCameraManager::pushRequest(Request *req)
 {
-	std::lock_guard guard(completedRequestsMutex_);
+	MutexLocker guard(completedRequestsMutex_);
 	completedRequests_.push_back(req);
 }
 
 std::vector<Request *> PyCameraManager::getCompletedRequests()
 {
 	std::vector<Request *> v;
-	std::lock_guard guard(completedRequestsMutex_);
+	MutexLocker guard(completedRequestsMutex_);
 	swap(v, completedRequests_);
 	return v;
 }
diff --git a/src/py/libcamera/py_camera_manager.h b/src/py/libcamera/py_camera_manager.h
index 710163e8..56bea13d 100644
--- a/src/py/libcamera/py_camera_manager.h
+++ b/src/py/libcamera/py_camera_manager.h
@@ -5,7 +5,7 @@ 
 
 #pragma once
 
-#include <mutex>
+#include <libcamera/base/mutex.h>
 
 #include <libcamera/libcamera.h>
 
@@ -34,8 +34,9 @@  private:
 	std::unique_ptr<CameraManager> cameraManager_;
 
 	UniqueFD eventFd_;
-	std::mutex completedRequestsMutex_;
-	std::vector<Request *> completedRequests_;
+	libcamera::Mutex completedRequestsMutex_;
+	std::vector<Request *> completedRequests_
+		LIBCAMERA_TSA_GUARDED_BY(completedRequestsMutex_);
 
 	void writeFd();
 	void readFd();