[libcamera-devel] [PATCH v3 08/17] py: Use libcamera's Mutex classes
Jacopo Mondi
jacopo at jmondi.org
Thu Aug 18 16:26:39 CEST 2022
Hi Tomi,
On Fri, Jul 01, 2022 at 11:45:12AM +0300, Tomi Valkeinen wrote:
> Use libcamera's Mutex and MutexLocker instead of the std versions to get
> thread safety annotations.
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ideasonboard.com>
I think this should be squashed as well!
> ---
> src/py/libcamera/py_camera_manager.cpp | 4 ++--
> src/py/libcamera/py_camera_manager.h | 7 ++++---
> 2 files changed, 6 insertions(+), 5 deletions(-)
>
> 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();
> --
> 2.34.1
>
More information about the libcamera-devel
mailing list