libcamera: base: Introduce ConditionVariable

ConditionVariable is alias to std::condition_variable. This replaces
std::condition_variable with the ConditionVariable. It enables
replacing ConditionVariable implementation easily in the following
patches.

Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Hirokazu Honda 2021-12-01 16:53:37 +09:00 committed by Laurent Pinchart
parent 59002a9e9d
commit 923cf7f40a
6 changed files with 12 additions and 10 deletions

View file

@ -7,8 +7,6 @@
#pragma once #pragma once
#include <condition_variable>
#include <libcamera/base/private.h> #include <libcamera/base/private.h>
#include <libcamera/base/thread.h> #include <libcamera/base/thread.h>
@ -26,7 +24,7 @@ public:
private: private:
Mutex mutex_; Mutex mutex_;
std::condition_variable cv_; ConditionVariable cv_;
unsigned int available_; unsigned int available_;
}; };

View file

@ -7,6 +7,7 @@
#pragma once #pragma once
#include <condition_variable>
#include <memory> #include <memory>
#include <mutex> #include <mutex>
#include <sys/types.h> #include <sys/types.h>
@ -26,6 +27,7 @@ class Object;
class ThreadData; class ThreadData;
class ThreadMain; class ThreadMain;
using ConditionVariable = std::condition_variable;
using Mutex = std::mutex; using Mutex = std::mutex;
using MutexLocker = std::unique_lock<std::mutex>; using MutexLocker = std::unique_lock<std::mutex>;

View file

@ -7,7 +7,6 @@
#pragma once #pragma once
#include <condition_variable>
#include <memory> #include <memory>
#include <mutex> #include <mutex>
#include <queue> #include <queue>
@ -154,7 +153,7 @@ private:
PostProcessor *postProcessor_; PostProcessor *postProcessor_;
libcamera::Mutex mutex_; libcamera::Mutex mutex_;
std::condition_variable cv_; libcamera::ConditionVariable cv_;
std::queue<Camera3RequestDescriptor::StreamBuffer *> requests_; std::queue<Camera3RequestDescriptor::StreamBuffer *> requests_;
State state_ = State::Stopped; State state_ = State::Stopped;

View file

@ -8,7 +8,6 @@
#include <libcamera/base/thread.h> #include <libcamera/base/thread.h>
#include <atomic> #include <atomic>
#include <condition_variable>
#include <list> #include <list>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <sys/types.h> #include <sys/types.h>
@ -158,7 +157,7 @@ private:
std::atomic<EventDispatcher *> dispatcher_; std::atomic<EventDispatcher *> dispatcher_;
std::condition_variable cv_; ConditionVariable cv_;
std::atomic<bool> exit_; std::atomic<bool> exit_;
int exitCode_; int exitCode_;
@ -205,6 +204,11 @@ ThreadData *ThreadData::current()
return data; return data;
} }
/**
* \typedef ConditionVariable
* \brief An alias for std::condition_variable
*/
/** /**
* \typedef Mutex * \typedef Mutex
* \brief An alias for std::mutex * \brief An alias for std::mutex

View file

@ -7,7 +7,6 @@
#include <libcamera/camera_manager.h> #include <libcamera/camera_manager.h>
#include <condition_variable>
#include <map> #include <map>
#include <libcamera/camera.h> #include <libcamera/camera.h>
@ -63,7 +62,7 @@ private:
void createPipelineHandlers(); void createPipelineHandlers();
void cleanup(); void cleanup();
std::condition_variable cv_; ConditionVariable cv_;
bool initialized_; bool initialized_;
int status_; int status_;

View file

@ -82,6 +82,6 @@ private:
int efd_; int efd_;
libcamera::Mutex bufferMutex_; libcamera::Mutex bufferMutex_;
std::condition_variable bufferCV_; libcamera::ConditionVariable bufferCV_;
unsigned int bufferAvailableCount_; unsigned int bufferAvailableCount_;
}; };