summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHirokazu Honda <hiroh@chromium.org>2021-12-01 16:53:37 +0900
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-12-01 13:46:36 +0200
commit923cf7f40a7f1875874384b30a7c8dcb1f23467a (patch)
tree63973cb65804a5b53ed6c8855fed289dea6dfb07
parent59002a9e9d84417197999391c7d8c6af620fc1fb (diff)
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>
-rw-r--r--include/libcamera/base/semaphore.h4
-rw-r--r--include/libcamera/base/thread.h2
-rw-r--r--src/android/camera_stream.h3
-rw-r--r--src/libcamera/base/thread.cpp8
-rw-r--r--src/libcamera/camera_manager.cpp3
-rw-r--r--src/v4l2/v4l2_camera.h2
6 files changed, 12 insertions, 10 deletions
diff --git a/include/libcamera/base/semaphore.h b/include/libcamera/base/semaphore.h
index ae87d319..ec05fad3 100644
--- a/include/libcamera/base/semaphore.h
+++ b/include/libcamera/base/semaphore.h
@@ -7,8 +7,6 @@
#pragma once
-#include <condition_variable>
-
#include <libcamera/base/private.h>
#include <libcamera/base/thread.h>
@@ -26,7 +24,7 @@ public:
private:
Mutex mutex_;
- std::condition_variable cv_;
+ ConditionVariable cv_;
unsigned int available_;
};
diff --git a/include/libcamera/base/thread.h b/include/libcamera/base/thread.h
index 32ebc80a..1ebf8363 100644
--- a/include/libcamera/base/thread.h
+++ b/include/libcamera/base/thread.h
@@ -7,6 +7,7 @@
#pragma once
+#include <condition_variable>
#include <memory>
#include <mutex>
#include <sys/types.h>
@@ -26,6 +27,7 @@ class Object;
class ThreadData;
class ThreadMain;
+using ConditionVariable = std::condition_variable;
using Mutex = std::mutex;
using MutexLocker = std::unique_lock<std::mutex>;
diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h
index e9da75f0..e4808369 100644
--- a/src/android/camera_stream.h
+++ b/src/android/camera_stream.h
@@ -7,7 +7,6 @@
#pragma once
-#include <condition_variable>
#include <memory>
#include <mutex>
#include <queue>
@@ -154,7 +153,7 @@ private:
PostProcessor *postProcessor_;
libcamera::Mutex mutex_;
- std::condition_variable cv_;
+ libcamera::ConditionVariable cv_;
std::queue<Camera3RequestDescriptor::StreamBuffer *> requests_;
State state_ = State::Stopped;
diff --git a/src/libcamera/base/thread.cpp b/src/libcamera/base/thread.cpp
index d0ca30e3..b893135f 100644
--- a/src/libcamera/base/thread.cpp
+++ b/src/libcamera/base/thread.cpp
@@ -8,7 +8,6 @@
#include <libcamera/base/thread.h>
#include <atomic>
-#include <condition_variable>
#include <list>
#include <sys/syscall.h>
#include <sys/types.h>
@@ -158,7 +157,7 @@ private:
std::atomic<EventDispatcher *> dispatcher_;
- std::condition_variable cv_;
+ ConditionVariable cv_;
std::atomic<bool> exit_;
int exitCode_;
@@ -206,6 +205,11 @@ ThreadData *ThreadData::current()
}
/**
+ * \typedef ConditionVariable
+ * \brief An alias for std::condition_variable
+ */
+
+/**
* \typedef Mutex
* \brief An alias for std::mutex
*/
diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index e78bb1d7..77ff3bd1 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -7,7 +7,6 @@
#include <libcamera/camera_manager.h>
-#include <condition_variable>
#include <map>
#include <libcamera/camera.h>
@@ -63,7 +62,7 @@ private:
void createPipelineHandlers();
void cleanup();
- std::condition_variable cv_;
+ ConditionVariable cv_;
bool initialized_;
int status_;
diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h
index 94263b2f..4afbb331 100644
--- a/src/v4l2/v4l2_camera.h
+++ b/src/v4l2/v4l2_camera.h
@@ -82,6 +82,6 @@ private:
int efd_;
libcamera::Mutex bufferMutex_;
- std::condition_variable bufferCV_;
+ libcamera::ConditionVariable bufferCV_;
unsigned int bufferAvailableCount_;
};