[libcamera-devel] [PATCH v3 5/8] android: Replace scoped_lock<> with libcamera::MutexLocker
Jacopo Mondi
jacopo at jmondi.org
Fri May 21 17:42:24 CEST 2021
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>
Reviewed-by: Hirokazu Honda <hiroh at chromium.org>
---
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 cf0e5e459213..fceae96a8b7c 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -23,6 +23,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"
@@ -1947,7 +1948,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);
}
@@ -1958,7 +1959,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
More information about the libcamera-devel
mailing list