[libcamera-devel] [PATCH] libcamera: base: Make MutexLocker(Mutex &mutex) non-blocking

Eric Curtin ecurtin at redhat.com
Wed Apr 27 16:51:50 CEST 2022


Camera::acquire claims to be non-blocking, in order to achieve this,
std::unique_lock<std::mutex> constructor must be called with
try_to_lock so it doesn't block if a lock cannot be obtained.

Bug: https://bugs.libcamera.org/show_bug.cgi?id=127
Signed-off-by: Eric Curtin <ecurtin at redhat.com>
---
 include/libcamera/base/mutex.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/libcamera/base/mutex.h b/include/libcamera/base/mutex.h
index 2d23e49e..c4a5f791 100644
--- a/include/libcamera/base/mutex.h
+++ b/include/libcamera/base/mutex.h
@@ -45,7 +45,7 @@ class LIBCAMERA_TSA_SCOPED_CAPABILITY MutexLocker final
 {
 public:
 	explicit MutexLocker(Mutex &mutex) LIBCAMERA_TSA_ACQUIRE(mutex)
-		: lock_(mutex.mutex_)
+		: lock_(mutex.mutex_, std::try_to_lock)
 	{
 	}
 
-- 
2.35.1



More information about the libcamera-devel mailing list