diff --git a/spa/plugins/libcamera/libcamera-manager.cpp b/spa/plugins/libcamera/libcamera-manager.cpp index db2c73d54..648ea1fe5 100644 --- a/spa/plugins/libcamera/libcamera-manager.cpp +++ b/spa/plugins/libcamera/libcamera-manager.cpp @@ -82,10 +82,13 @@ struct impl { } -static std::weak_ptr global_manager; - std::shared_ptr libcamera_manager_acquire(int& res) { + static std::weak_ptr global_manager; + static std::mutex lock; + + std::lock_guard guard(lock); + if (auto manager = global_manager.lock()) return manager;