spa: libcamera: use lock when acquiring CameraManager

Make `libcamera_manager_acquire()` thread safe by locking a mutex
when the `CameraManager` instance is created and started.

(cherry picked from commit 5f4f4b5dd3)
This commit is contained in:
Barnabás Pőcze 2025-07-12 16:44:31 +02:00 committed by Robert Mader
parent 74bd520224
commit de97a682f2

View file

@ -82,10 +82,13 @@ struct impl {
} }
static std::weak_ptr<CameraManager> global_manager;
std::shared_ptr<CameraManager> libcamera_manager_acquire(int& res) std::shared_ptr<CameraManager> libcamera_manager_acquire(int& res)
{ {
static std::weak_ptr<CameraManager> global_manager;
static std::mutex lock;
std::lock_guard guard(lock);
if (auto manager = global_manager.lock()) if (auto manager = global_manager.lock())
return manager; return manager;