From f6a5d675b1cfd1ee9cb9358526e1f84b821b9e07 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 29 Aug 2021 21:10:57 +0300 Subject: libcamera: pipeline_handler: Make lock() and unlock() thread-safe The PipelineHandler lock() and unlock() functions are documented as thread-safe, but they're not. Fix them using a mutex. Signed-off-by: Laurent Pinchart --- include/libcamera/internal/pipeline_handler.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h index fc6d476b..b473eb70 100644 --- a/include/libcamera/internal/pipeline_handler.h +++ b/include/libcamera/internal/pipeline_handler.h @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -73,6 +74,8 @@ protected: CameraManager *manager_; private: + void unlockLocked(); + void mediaDeviceDisconnected(MediaDevice *media); virtual void disconnect(); @@ -81,6 +84,7 @@ private: const char *name_; + Mutex lock_; bool lockOwner_; friend class PipelineHandlerFactory; -- cgit v1.2.1