[libcamera-devel] [PATCH 07/14] test: Get event dispatcher from current thread
Jacopo Mondi
jacopo at jmondi.org
Mon Aug 19 11:03:20 CEST 2019
Hi Laurent,
regardless of the discussion on the instance() operation, I think
this is good, but please see a few comments below.
Minors apart:
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks
j
On Sun, Aug 18, 2019 at 04:13:22AM +0300, Laurent Pinchart wrote:
> For all tests that don't otherwise require access to the camera manager,
> get the event dispatcher from the current thread instead of the camera
> manager. This prepares for the removal of CameraManager::instance().
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
> test/event-dispatcher.cpp | 4 ++--
> test/event.cpp | 4 ++--
> test/ipc/unixsocket.cpp | 6 +++---
> test/log/log_process.cpp | 4 ++--
> test/meson.build | 6 +++---
> test/object-invoke.cpp | 3 +--
> test/process/process_test.cpp | 4 ++--
> test/timer.cpp | 4 ++--
> test/v4l2_videodevice/buffer_sharing.cpp | 4 ++--
> test/v4l2_videodevice/capture_async.cpp | 4 ++--
> test/v4l2_videodevice/v4l2_m2mdevice.cpp | 4 ++--
> 11 files changed, 23 insertions(+), 24 deletions(-)
>
> diff --git a/test/event-dispatcher.cpp b/test/event-dispatcher.cpp
> index e8818dcab4ad..f243ec39bc28 100644
> --- a/test/event-dispatcher.cpp
> +++ b/test/event-dispatcher.cpp
> @@ -9,11 +9,11 @@
> #include <signal.h>
> #include <sys/time.h>
>
> -#include <libcamera/camera_manager.h>
> #include <libcamera/event_dispatcher.h>
> #include <libcamera/timer.h>
>
> #include "test.h"
> +#include "thread.h"
>
> using namespace std;
> using namespace libcamera;
> @@ -33,7 +33,7 @@ protected:
>
> int init()
> {
> - dispatcher = CameraManager::instance()->eventDispatcher();
> + dispatcher = Thread::current()->eventDispatcher();
>
> struct sigaction sa = {};
> sa.sa_handler = &sigAlarmHandler;
> diff --git a/test/event.cpp b/test/event.cpp
> index 9bd876153a18..816060cc44a2 100644
> --- a/test/event.cpp
> +++ b/test/event.cpp
> @@ -9,12 +9,12 @@
> #include <string.h>
> #include <unistd.h>
>
> -#include <libcamera/camera_manager.h>
> #include <libcamera/event_dispatcher.h>
> #include <libcamera/event_notifier.h>
> #include <libcamera/timer.h>
>
> #include "test.h"
> +#include "thread.h"
>
> using namespace std;
> using namespace libcamera;
> @@ -35,7 +35,7 @@ protected:
>
> int run()
> {
> - EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
> + EventDispatcher *dispatcher = Thread::current()->eventDispatcher();
> std::string data("H2G2");
> Timer timeout;
> ssize_t ret;
> diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp
> index 40a3a84a87d2..f53042b88720 100644
> --- a/test/ipc/unixsocket.cpp
> +++ b/test/ipc/unixsocket.cpp
> @@ -15,12 +15,12 @@
> #include <sys/wait.h>
> #include <unistd.h>
>
> -#include <libcamera/camera_manager.h>
> #include <libcamera/event_dispatcher.h>
> #include <libcamera/timer.h>
>
> #include "ipc_unixsocket.h"
> #include "test.h"
> +#include "thread.h"
> #include "utils.h"
>
> #define CMD_CLOSE 0
> @@ -47,7 +47,7 @@ public:
> UnixSocketTestSlave()
> : exitCode_(EXIT_FAILURE), exit_(false)
> {
> - dispatcher_ = CameraManager::instance()->eventDispatcher();
> + dispatcher_ = Thread::current()->eventDispatcher();
> ipc_.readyRead.connect(this, &UnixSocketTestSlave::readyRead);
> }
>
> @@ -436,7 +436,7 @@ private:
> return -ETIMEDOUT;
> }
>
> - CameraManager::instance()->eventDispatcher()->processEvents();
> + Thread::current()->eventDispatcher()->processEvents();
> }
>
> callResponse_ = nullptr;
> diff --git a/test/log/log_process.cpp b/test/log/log_process.cpp
> index 36d25b27bfea..2df4aa43713c 100644
> --- a/test/log/log_process.cpp
> +++ b/test/log/log_process.cpp
> @@ -14,7 +14,6 @@
> #include <unistd.h>
> #include <vector>
>
> -#include <libcamera/camera_manager.h>
> #include <libcamera/event_dispatcher.h>
> #include <libcamera/logging.h>
> #include <libcamera/timer.h>
> @@ -22,6 +21,7 @@
> #include "log.h"
> #include "process.h"
> #include "test.h"
> +#include "thread.h"
> #include "utils.h"
>
> using namespace std;
> @@ -65,7 +65,7 @@ protected:
>
> int run()
> {
> - EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
> + EventDispatcher *dispatcher = Thread::current()->eventDispatcher();
> Timer timeout;
>
> int exitCode = 42;
> diff --git a/test/meson.build b/test/meson.build
> index 05265b7d4976..84722cceb35d 100644
> --- a/test/meson.build
> +++ b/test/meson.build
> @@ -13,22 +13,22 @@ subdir('v4l2_subdevice')
> subdir('v4l2_videodevice')
>
> public_tests = [
> - ['event', 'event.cpp'],
> - ['event-dispatcher', 'event-dispatcher.cpp'],
> ['geometry', 'geometry.cpp'],
> ['list-cameras', 'list-cameras.cpp'],
> ['signal', 'signal.cpp'],
> - ['timer', 'timer.cpp'],
> ]
>
> internal_tests = [
> ['camera-sensor', 'camera-sensor.cpp'],
> + ['event', 'event.cpp'],
> + ['event-dispatcher', 'event-dispatcher.cpp'],
> ['event-thread', 'event-thread.cpp'],
> ['message', 'message.cpp'],
> ['object', 'object.cpp'],
> ['object-invoke', 'object-invoke.cpp'],
> ['signal-threads', 'signal-threads.cpp'],
> ['threads', 'threads.cpp'],
> + ['timer', 'timer.cpp'],
> ['timer-thread', 'timer-thread.cpp'],
> ]
>
This seems unrelated...
> diff --git a/test/object-invoke.cpp b/test/object-invoke.cpp
> index 7221930f4380..9fb93e140305 100644
> --- a/test/object-invoke.cpp
> +++ b/test/object-invoke.cpp
> @@ -9,7 +9,6 @@
> #include <iostream>
> #include <thread>
>
> -#include <libcamera/camera_manager.h>
> #include <libcamera/event_dispatcher.h>
> #include <libcamera/object.h>
While at it, could you re-sort the following:
#include "thread.h"
#include "test.h"
>
> @@ -61,7 +60,7 @@ class ObjectInvokeTest : public Test
> protected:
> int run()
> {
> - EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
> + EventDispatcher *dispatcher = Thread::current()->eventDispatcher();
> InvokedObject object;
>
> /*
> diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
> index acb161454e2e..d264555e545f 100644
> --- a/test/process/process_test.cpp
> +++ b/test/process/process_test.cpp
> @@ -9,12 +9,12 @@
> #include <unistd.h>
> #include <vector>
>
> -#include <libcamera/camera_manager.h>
> #include <libcamera/event_dispatcher.h>
> #include <libcamera/timer.h>
>
> #include "process.h"
> #include "test.h"
> +#include "thread.h"
> #include "utils.h"
>
> using namespace std;
> @@ -41,7 +41,7 @@ public:
> protected:
> int run()
> {
> - EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
> + EventDispatcher *dispatcher = Thread::current()->eventDispatcher();
> Timer timeout;
>
> int exitCode = 42;
> diff --git a/test/timer.cpp b/test/timer.cpp
> index addebce3c784..c30709d4109a 100644
> --- a/test/timer.cpp
> +++ b/test/timer.cpp
> @@ -7,11 +7,11 @@
>
> #include <iostream>
>
> -#include <libcamera/camera_manager.h>
> #include <libcamera/event_dispatcher.h>
> #include <libcamera/timer.h>
>
> #include "test.h"
> +#include "thread.h"
>
> using namespace std;
> using namespace libcamera;
> @@ -62,7 +62,7 @@ protected:
>
> int run()
> {
> - EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
> + EventDispatcher *dispatcher = Thread::current()->eventDispatcher();
> ManagedTimer timer;
> ManagedTimer timer2;
>
> diff --git a/test/v4l2_videodevice/buffer_sharing.cpp b/test/v4l2_videodevice/buffer_sharing.cpp
> index 12ec88f2d8e6..1629f34cfa6c 100644
> --- a/test/v4l2_videodevice/buffer_sharing.cpp
> +++ b/test/v4l2_videodevice/buffer_sharing.cpp
> @@ -13,10 +13,10 @@
> #include <iostream>
>
> #include <libcamera/buffer.h>
> -#include <libcamera/camera_manager.h>
> #include <libcamera/event_dispatcher.h>
> #include <libcamera/timer.h>
>
> +#include "thread.h"
> #include "v4l2_videodevice_test.h"
>
> class BufferSharingTest : public V4L2VideoDeviceTest
> @@ -116,7 +116,7 @@ protected:
>
> int run()
> {
> - EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
> + EventDispatcher *dispatcher = Thread::current()->eventDispatcher();
> Timer timeout;
> int ret;
>
> diff --git a/test/v4l2_videodevice/capture_async.cpp b/test/v4l2_videodevice/capture_async.cpp
> index 4909f71a3f34..17eb528b12fd 100644
> --- a/test/v4l2_videodevice/capture_async.cpp
> +++ b/test/v4l2_videodevice/capture_async.cpp
> @@ -6,12 +6,12 @@
> */
>
> #include <libcamera/buffer.h>
> -#include <libcamera/camera_manager.h>
> #include <libcamera/event_dispatcher.h>
> #include <libcamera/timer.h>
>
> #include <iostream>
>
> +#include "thread.h"
> #include "v4l2_videodevice_test.h"
>
> class CaptureAsyncTest : public V4L2VideoDeviceTest
> @@ -34,7 +34,7 @@ protected:
> {
> const unsigned int bufferCount = 8;
>
> - EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
> + EventDispatcher *dispatcher = Thread::current()->eventDispatcher();
> Timer timeout;
> int ret;
>
> diff --git a/test/v4l2_videodevice/v4l2_m2mdevice.cpp b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
> index d132b1db2432..4d3644c2d287 100644
> --- a/test/v4l2_videodevice/v4l2_m2mdevice.cpp
> +++ b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
> @@ -8,12 +8,12 @@
> #include <iostream>
>
> #include <libcamera/buffer.h>
> -#include <libcamera/camera_manager.h>
> #include <libcamera/event_dispatcher.h>
> #include <libcamera/timer.h>
>
> #include "device_enumerator.h"
> #include "media_device.h"
> +#include "thread.h"
> #include "v4l2_videodevice.h"
>
> #include "test.h"
> @@ -80,7 +80,7 @@ protected:
> {
> constexpr unsigned int bufferCount = 4;
>
> - EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
> + EventDispatcher *dispatcher = Thread::current()->eventDispatcher();
> int ret;
>
> MediaEntity *entity = media_->getEntityByName("vim2m-source");
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20190819/266dbc80/attachment.sig>
More information about the libcamera-devel
mailing list