[libcamera-devel] [PATCH 5/8] android: Replace scoped_lock<> with libcamera::MutexLocker
Niklas Söderlund
niklas.soderlund at ragnatech.se
Mon May 10 22:29:21 CEST 2021
Hi Jacopo,
Thanks for your patch.
On 2021-05-10 12:52:32 +0200, Jacopo Mondi wrote:
> The CameraDevice class uses std::scoped_lock<> to guard access to the
> class' descriptors_ member.
>
> std::scoped_lock<> provides a set of features that guarantees safety
> when locking multiple mutexes in a critical section, while for single
> locks happening in a scoped block it does not provides benefits compared
> to the simplest std::unique_lock<> which libcamera provides the
> MutexLocker type for.
>
> Replace usage of std::scoped_lock<> with libcamera::MutexLocker to make
> the implementation consistent with the rest of the code base.
>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> src/android/camera_device.cpp | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index bdb5c8ed52aa..ff965a1c8c86 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -22,6 +22,7 @@
>
> #include "libcamera/internal/formats.h"
> #include "libcamera/internal/log.h"
> +#include "libcamera/internal/thread.h"
> #include "libcamera/internal/utils.h"
>
> #include "system/graphics.h"
> @@ -2016,7 +2017,7 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques
> worker_.queueRequest(descriptor.request_.get());
>
> {
> - std::scoped_lock<std::mutex> lock(mutex_);
> + MutexLocker lock(mutex_);
> descriptors_[descriptor.request_->cookie()] = std::move(descriptor);
> }
>
> @@ -2027,7 +2028,7 @@ void CameraDevice::requestComplete(Request *request)
> {
> decltype(descriptors_)::node_type node;
> {
> - std::scoped_lock<std::mutex> lock(mutex_);
> + MutexLocker lock(mutex_);
> auto it = descriptors_.find(request->cookie());
> if (it == descriptors_.end()) {
> /*
> --
> 2.31.1
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list