py: Use libcamera's Mutex classes

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>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Tomi Valkeinen 2022-08-19 14:16:14 +03:00 committed by Laurent Pinchart
parent dfa86000a6
commit de7f1aa591
2 changed files with 6 additions and 5 deletions

View file

@ -106,14 +106,14 @@ void PyCameraManager::readFd()
void PyCameraManager::pushRequest(Request *req) void PyCameraManager::pushRequest(Request *req)
{ {
std::lock_guard guard(completedRequestsMutex_); MutexLocker guard(completedRequestsMutex_);
completedRequests_.push_back(req); completedRequests_.push_back(req);
} }
std::vector<Request *> PyCameraManager::getCompletedRequests() std::vector<Request *> PyCameraManager::getCompletedRequests()
{ {
std::vector<Request *> v; std::vector<Request *> v;
std::lock_guard guard(completedRequestsMutex_); MutexLocker guard(completedRequestsMutex_);
swap(v, completedRequests_); swap(v, completedRequests_);
return v; return v;
} }

View file

@ -5,7 +5,7 @@
#pragma once #pragma once
#include <mutex> #include <libcamera/base/mutex.h>
#include <libcamera/libcamera.h> #include <libcamera/libcamera.h>
@ -34,8 +34,9 @@ private:
std::unique_ptr<CameraManager> cameraManager_; std::unique_ptr<CameraManager> cameraManager_;
UniqueFD eventFd_; UniqueFD eventFd_;
std::mutex completedRequestsMutex_; libcamera::Mutex completedRequestsMutex_;
std::vector<Request *> completedRequests_; std::vector<Request *> completedRequests_
LIBCAMERA_TSA_GUARDED_BY(completedRequestsMutex_);
void writeFd(); void writeFd();
void readFd(); void readFd();