[libcamera-devel] [PATCH v1 6/6] libcamera: Drop emitter object pointer from signal arguments
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Aug 30 14:55:49 CEST 2021
Hi Umang,
On Mon, Aug 30, 2021 at 05:35:37PM +0530, Umang Jain wrote:
> On 8/27/21 8:08 AM, Laurent Pinchart wrote:
> > Many signals used in internal and public APIs carry the emitter pointer
> > as a signal argument. This was done to allow slots connected to multiple
> > signal instances to differentiate between emitters. While starting from
> > a good intention of facilitating the implementation of slots, it turned
> > out to be a bad API design as the signal isn't meant to know what it
> > will be connected to, and thus shouldn't carry parameters that are
> > solely meant to support a use case specific to the connected slot.
> >
> > These pointers turn out to be unused in all slots but one. In the only
> > case where it is needed, it can be obtained by wrapping the slot in a
> > lambda function when connecting the signal. Do so, and drop the emitter
> > pointer from all signals.
>
> hmm, When you said, the emitter object pointer is not required during
> signal emission, i initially thought, it's not required to be explicitly
> to be mentioned the argument list - during the signal emission for e.g.
>
> class XYZ:
>
> ....
> Signal<XYZ *, Arg A, Arg B> sig;
>
> becomes
>
> class XYZ:
>
> ....
> Signal<Arg A, Arg B> sig;
>
> But the slot essentially remained unchanged for both cases i.e. for
> every signal, the passing of emitter pointer can be automatic/implicit to:
>
> signalSlot(XYZ *, Arg A, Arg B)
>
> {}
>
>
> Well, you are right about how the pointers mostly turned out to be
> unused, so I am not opposed with series as such. I suspect some cases
> will still pop up, where we do need to emitter pointer in the slot, but
> as I see below, we can address those with a lamda func.
Yes, that's the idea. From the point of view of the emitter, having an
emitter pointer as a signal argument is really about passing context
information, it's not per-emission data. As you've seen, the vast
majority of slots (all but one) already have the context. For the only
slot that doesn't, using a lambda function is fairly trivial, and the
little overhead we have there is I think worse the gain in all other
case, as well as the neater design of not having to add a signal context
argument that is of no use to the emitter. It creates a better
separation between the design of the emitter and the design of the
receiver, leading to more reusable components.
> > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>
> Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
>
> > ---
> > include/libcamera/base/event_notifier.h | 2 +-
> > include/libcamera/base/thread.h | 2 +-
> > include/libcamera/base/timer.h | 2 +-
> > include/libcamera/camera.h | 2 +-
> > include/libcamera/internal/device_enumerator_udev.h | 2 +-
> > include/libcamera/internal/ipc_pipe_unixsocket.h | 2 +-
> > include/libcamera/internal/ipc_unixsocket.h | 4 ++--
> > include/libcamera/internal/media_device.h | 2 +-
> > include/libcamera/internal/process.h | 4 ++--
> > include/libcamera/internal/v4l2_device.h | 2 +-
> > include/libcamera/internal/v4l2_videodevice.h | 2 +-
> > src/libcamera/base/event_dispatcher_poll.cpp | 4 ++--
> > src/libcamera/base/thread.cpp | 2 +-
> > src/libcamera/camera.cpp | 2 +-
> > src/libcamera/device_enumerator.cpp | 2 +-
> > src/libcamera/device_enumerator_udev.cpp | 2 +-
> > src/libcamera/ipc_pipe_unixsocket.cpp | 2 +-
> > src/libcamera/ipc_unixsocket.cpp | 4 ++--
> > src/libcamera/pipeline_handler.cpp | 2 +-
> > src/libcamera/process.cpp | 4 ++--
> > src/libcamera/v4l2_device.cpp | 3 +--
> > src/libcamera/v4l2_videodevice.cpp | 3 +--
> > test/event-thread.cpp | 2 +-
> > test/event.cpp | 2 +-
> > test/ipa/ipa_interface_test.cpp | 2 +-
> > test/ipc/unixsocket.cpp | 4 ++--
> > test/ipc/unixsocket_ipc.cpp | 2 +-
> > test/log/log_process.cpp | 3 +--
> > test/process/process_test.cpp | 3 +--
> > test/timer-thread.cpp | 2 +-
> > test/timer.cpp | 2 +-
> > .../libcamera_templates/module_ipa_proxy_worker.cpp.tmpl | 2 +-
> > 32 files changed, 38 insertions(+), 42 deletions(-)
> >
> > diff --git a/include/libcamera/base/event_notifier.h b/include/libcamera/base/event_notifier.h
> > index 5055ccbf21ca..f7722a32ef55 100644
> > --- a/include/libcamera/base/event_notifier.h
> > +++ b/include/libcamera/base/event_notifier.h
> > @@ -34,7 +34,7 @@ public:
> > bool enabled() const { return enabled_; }
> > void setEnabled(bool enable);
> >
> > - Signal<EventNotifier *> activated;
> > + Signal<> activated;
> >
> > protected:
> > void message(Message *msg) override;
> > diff --git a/include/libcamera/base/thread.h b/include/libcamera/base/thread.h
> > index 762beab2a360..e0ca0aeaa761 100644
> > --- a/include/libcamera/base/thread.h
> > +++ b/include/libcamera/base/thread.h
> > @@ -41,7 +41,7 @@ public:
> >
> > bool isRunning();
> >
> > - Signal<Thread *> finished;
> > + Signal<> finished;
> >
> > static Thread *current();
> > static pid_t currentId();
> > diff --git a/include/libcamera/base/timer.h b/include/libcamera/base/timer.h
> > index 798821611c6c..44876a85dc0a 100644
> > --- a/include/libcamera/base/timer.h
> > +++ b/include/libcamera/base/timer.h
> > @@ -33,7 +33,7 @@ public:
> >
> > std::chrono::steady_clock::time_point deadline() const { return deadline_; }
> >
> > - Signal<Timer *> timeout;
> > + Signal<> timeout;
> >
> > protected:
> > void message(Message *msg) override;
> > diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h
> > index 05cdab724b10..601ee46e415b 100644
> > --- a/include/libcamera/camera.h
> > +++ b/include/libcamera/camera.h
> > @@ -86,7 +86,7 @@ public:
> >
> > Signal<Request *, FrameBuffer *> bufferCompleted;
> > Signal<Request *> requestCompleted;
> > - Signal<Camera *> disconnected;
> > + Signal<> disconnected;
> >
> > int acquire();
> > int release();
> > diff --git a/include/libcamera/internal/device_enumerator_udev.h b/include/libcamera/internal/device_enumerator_udev.h
> > index 58e64a297b1d..c035298081b4 100644
> > --- a/include/libcamera/internal/device_enumerator_udev.h
> > +++ b/include/libcamera/internal/device_enumerator_udev.h
> > @@ -59,7 +59,7 @@ private:
> > std::string lookupDeviceNode(dev_t devnum);
> >
> > int addV4L2Device(dev_t devnum);
> > - void udevNotify(EventNotifier *notifier);
> > + void udevNotify();
> >
> > struct udev *udev_;
> > struct udev_monitor *monitor_;
> > diff --git a/include/libcamera/internal/ipc_pipe_unixsocket.h b/include/libcamera/internal/ipc_pipe_unixsocket.h
> > index 4ffdddcc7f92..ad2927fed7f0 100644
> > --- a/include/libcamera/internal/ipc_pipe_unixsocket.h
> > +++ b/include/libcamera/internal/ipc_pipe_unixsocket.h
> > @@ -35,7 +35,7 @@ private:
> > bool done;
> > };
> >
> > - void readyRead(IPCUnixSocket *socket);
> > + void readyRead();
> > int call(const IPCUnixSocket::Payload &message,
> > IPCUnixSocket::Payload *response, uint32_t seq);
> >
> > diff --git a/include/libcamera/internal/ipc_unixsocket.h b/include/libcamera/internal/ipc_unixsocket.h
> > index 9f5b06773ced..2b87196c4851 100644
> > --- a/include/libcamera/internal/ipc_unixsocket.h
> > +++ b/include/libcamera/internal/ipc_unixsocket.h
> > @@ -37,7 +37,7 @@ public:
> > int send(const Payload &payload);
> > int receive(Payload *payload);
> >
> > - Signal<IPCUnixSocket *> readyRead;
> > + Signal<> readyRead;
> >
> > private:
> > struct Header {
> > @@ -48,7 +48,7 @@ private:
> > int sendData(const void *buffer, size_t length, const int32_t *fds, unsigned int num);
> > int recvData(void *buffer, size_t length, int32_t *fds, unsigned int num);
> >
> > - void dataNotifier(EventNotifier *notifier);
> > + void dataNotifier();
> >
> > int fd_;
> > bool headerReceived_;
> > diff --git a/include/libcamera/internal/media_device.h b/include/libcamera/internal/media_device.h
> > index 3a7722c2a215..1f2304c19281 100644
> > --- a/include/libcamera/internal/media_device.h
> > +++ b/include/libcamera/internal/media_device.h
> > @@ -53,7 +53,7 @@ public:
> > MediaLink *link(const MediaPad *source, const MediaPad *sink);
> > int disableLinks();
> >
> > - Signal<MediaDevice *> disconnected;
> > + Signal<> disconnected;
> >
> > protected:
> > std::string logPrefix() const override;
> > diff --git a/include/libcamera/internal/process.h b/include/libcamera/internal/process.h
> > index c4d5d9c1c009..300e0521eb03 100644
> > --- a/include/libcamera/internal/process.h
> > +++ b/include/libcamera/internal/process.h
> > @@ -38,7 +38,7 @@ public:
> >
> > void kill();
> >
> > - Signal<Process *, enum ExitStatus, int> finished;
> > + Signal<enum ExitStatus, int> finished;
> >
> > private:
> > void closeAllFdsExcept(const std::vector<int> &fds);
> > @@ -70,7 +70,7 @@ public:
> > private:
> > static ProcessManager *self_;
> >
> > - void sighandler(EventNotifier *notifier);
> > + void sighandler();
> >
> > std::list<Process *> processes_;
> >
> > diff --git a/include/libcamera/internal/v4l2_device.h b/include/libcamera/internal/v4l2_device.h
> > index 423c8fb11845..f21bc3701ca0 100644
> > --- a/include/libcamera/internal/v4l2_device.h
> > +++ b/include/libcamera/internal/v4l2_device.h
> > @@ -65,7 +65,7 @@ private:
> > void updateControls(ControlList *ctrls,
> > Span<const v4l2_ext_control> v4l2Ctrls);
> >
> > - void eventAvailable(EventNotifier *notifier);
> > + void eventAvailable();
> >
> > std::map<unsigned int, struct v4l2_query_ext_ctrl> controlInfo_;
> > std::vector<std::unique_ptr<ControlId>> controlIds_;
> > diff --git a/include/libcamera/internal/v4l2_videodevice.h b/include/libcamera/internal/v4l2_videodevice.h
> > index e767ec84c4da..400d4490d016 100644
> > --- a/include/libcamera/internal/v4l2_videodevice.h
> > +++ b/include/libcamera/internal/v4l2_videodevice.h
> > @@ -238,7 +238,7 @@ private:
> > std::unique_ptr<FrameBuffer> createBuffer(unsigned int index);
> > FileDescriptor exportDmabufFd(unsigned int index, unsigned int plane);
> >
> > - void bufferAvailable(EventNotifier *notifier);
> > + void bufferAvailable();
> > FrameBuffer *dequeueBuffer();
> >
> > V4L2Capability caps_;
> > diff --git a/src/libcamera/base/event_dispatcher_poll.cpp b/src/libcamera/base/event_dispatcher_poll.cpp
> > index 4f22f5793bb9..3c9a126c0bd6 100644
> > --- a/src/libcamera/base/event_dispatcher_poll.cpp
> > +++ b/src/libcamera/base/event_dispatcher_poll.cpp
> > @@ -278,7 +278,7 @@ void EventDispatcherPoll::processNotifiers(const std::vector<struct pollfd> &pol
> > }
> >
> > if (pfd.revents & event.events)
> > - notifier->activated.emit(notifier);
> > + notifier->activated.emit();
> > }
> >
> > /* Erase the notifiers_ entry if it is now empty. */
> > @@ -300,7 +300,7 @@ void EventDispatcherPoll::processTimers()
> >
> > timers_.pop_front();
> > timer->stop();
> > - timer->timeout.emit(timer);
> > + timer->timeout.emit();
> > }
> > }
> >
> > diff --git a/src/libcamera/base/thread.cpp b/src/libcamera/base/thread.cpp
> > index bd7b73911d12..d0ca30e3d522 100644
> > --- a/src/libcamera/base/thread.cpp
> > +++ b/src/libcamera/base/thread.cpp
> > @@ -384,7 +384,7 @@ void Thread::finishThread()
> > data_->running_ = false;
> > data_->mutex_.unlock();
> >
> > - finished.emit(this);
> > + finished.emit();
> > data_->cv_.notify_all();
> > }
> >
> > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
> > index c20e05014fb9..b5849d4d401a 100644
> > --- a/src/libcamera/camera.cpp
> > +++ b/src/libcamera/camera.cpp
> > @@ -688,7 +688,7 @@ void Camera::disconnect()
> > LOG(Camera, Debug) << "Disconnecting camera " << id();
> >
> > _d()->disconnect();
> > - disconnected.emit(this);
> > + disconnected.emit();
> > }
> >
> > int Camera::exportFrameBuffers(Stream *stream,
> > diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp
> > index ec59927eaf34..d12580505303 100644
> > --- a/src/libcamera/device_enumerator.cpp
> > +++ b/src/libcamera/device_enumerator.cpp
> > @@ -288,7 +288,7 @@ void DeviceEnumerator::removeDevice(const std::string &deviceNode)
> > LOG(DeviceEnumerator, Debug)
> > << "Media device for node " << deviceNode << " removed.";
> >
> > - media->disconnected.emit(media.get());
> > + media->disconnected.emit();
> > }
> >
> > /**
> > diff --git a/src/libcamera/device_enumerator_udev.cpp b/src/libcamera/device_enumerator_udev.cpp
> > index 37a2c5aa55db..5317afbd77ce 100644
> > --- a/src/libcamera/device_enumerator_udev.cpp
> > +++ b/src/libcamera/device_enumerator_udev.cpp
> > @@ -327,7 +327,7 @@ int DeviceEnumeratorUdev::addV4L2Device(dev_t devnum)
> > return 0;
> > }
> >
> > -void DeviceEnumeratorUdev::udevNotify([[maybe_unused]] EventNotifier *notifier)
> > +void DeviceEnumeratorUdev::udevNotify()
> > {
> > struct udev_device *dev = udev_monitor_receive_device(monitor_);
> > std::string action(udev_device_get_action(dev));
> > diff --git a/src/libcamera/ipc_pipe_unixsocket.cpp b/src/libcamera/ipc_pipe_unixsocket.cpp
> > index 38bcc30a21ed..533560cf95d3 100644
> > --- a/src/libcamera/ipc_pipe_unixsocket.cpp
> > +++ b/src/libcamera/ipc_pipe_unixsocket.cpp
> > @@ -82,7 +82,7 @@ int IPCPipeUnixSocket::sendAsync(const IPCMessage &data)
> > return 0;
> > }
> >
> > -void IPCPipeUnixSocket::readyRead([[maybe_unused]] IPCUnixSocket *socket)
> > +void IPCPipeUnixSocket::readyRead()
> > {
> > IPCUnixSocket::Payload payload;
> > int ret = socket_->receive(&payload);
> > diff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp
> > index 7188cf29e56a..bd32fca3a678 100644
> > --- a/src/libcamera/ipc_unixsocket.cpp
> > +++ b/src/libcamera/ipc_unixsocket.cpp
> > @@ -311,7 +311,7 @@ int IPCUnixSocket::recvData(void *buffer, size_t length,
> > return 0;
> > }
> >
> > -void IPCUnixSocket::dataNotifier([[maybe_unused]] EventNotifier *notifier)
> > +void IPCUnixSocket::dataNotifier()
> > {
> > int ret;
> >
> > @@ -342,7 +342,7 @@ void IPCUnixSocket::dataNotifier([[maybe_unused]] EventNotifier *notifier)
> > return;
> >
> > notifier_->setEnabled(false);
> > - readyRead.emit(this);
> > + readyRead.emit();
> > }
> >
> > } /* namespace libcamera */
> > diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
> > index 597d4c6a578a..f69c4f03b80f 100644
> > --- a/src/libcamera/pipeline_handler.cpp
> > +++ b/src/libcamera/pipeline_handler.cpp
> > @@ -448,7 +448,7 @@ void PipelineHandler::registerCamera(std::shared_ptr<Camera> camera)
> > */
> > void PipelineHandler::hotplugMediaDevice(MediaDevice *media)
> > {
> > - media->disconnected.connect(this, &PipelineHandler::mediaDeviceDisconnected);
> > + media->disconnected.connect(this, [=]() { mediaDeviceDisconnected(media); });
> > }
> >
> > /**
> > diff --git a/src/libcamera/process.cpp b/src/libcamera/process.cpp
> > index 998d08c2d88a..eca1b30039b8 100644
> > --- a/src/libcamera/process.cpp
> > +++ b/src/libcamera/process.cpp
> > @@ -66,7 +66,7 @@ void sigact(int signal, siginfo_t *info, void *ucontext)
> >
> > } /* namespace */
> >
> > -void ProcessManager::sighandler([[maybe_unused]] EventNotifier *notifier)
> > +void ProcessManager::sighandler()
> > {
> > char data;
> > ssize_t ret = read(pipe_[0], &data, sizeof(data));
> > @@ -326,7 +326,7 @@ void Process::died(int wstatus)
> > exitStatus_ = WIFEXITED(wstatus) ? NormalExit : SignalExit;
> > exitCode_ = exitStatus_ == NormalExit ? WEXITSTATUS(wstatus) : -1;
> >
> > - finished.emit(this, exitStatus_, exitCode_);
> > + finished.emit(exitStatus_, exitCode_);
> > }
> >
> > /**
> > diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
> > index 951592c698f7..9c783c9cbed1 100644
> > --- a/src/libcamera/v4l2_device.cpp
> > +++ b/src/libcamera/v4l2_device.cpp
> > @@ -705,12 +705,11 @@ void V4L2Device::updateControls(ControlList *ctrls,
> >
> > /**
> > * \brief Slot to handle V4L2 events from the V4L2 device
> > - * \param[in] notifier The event notifier
> > *
> > * When this slot is called, a V4L2 event is available to be dequeued from the
> > * device.
> > */
> > -void V4L2Device::eventAvailable([[maybe_unused]] EventNotifier *notifier)
> > +void V4L2Device::eventAvailable()
> > {
> > struct v4l2_event event{};
> > int ret = ioctl(VIDIOC_DQEVENT, &event);
> > diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
> > index ce60dff6cdfd..1684d0e9c8dd 100644
> > --- a/src/libcamera/v4l2_videodevice.cpp
> > +++ b/src/libcamera/v4l2_videodevice.cpp
> > @@ -1467,7 +1467,6 @@ int V4L2VideoDevice::queueBuffer(FrameBuffer *buffer)
> >
> > /**
> > * \brief Slot to handle completed buffer events from the V4L2 video device
> > - * \param[in] notifier The event notifier
> > *
> > * When this slot is called, a Buffer has become available from the device, and
> > * will be emitted through the bufferReady Signal.
> > @@ -1475,7 +1474,7 @@ int V4L2VideoDevice::queueBuffer(FrameBuffer *buffer)
> > * For Capture video devices the FrameBuffer will contain valid data.
> > * For Output video devices the FrameBuffer can be considered empty.
> > */
> > -void V4L2VideoDevice::bufferAvailable([[maybe_unused]] EventNotifier *notifier)
> > +void V4L2VideoDevice::bufferAvailable()
> > {
> > FrameBuffer *buffer = dequeueBuffer();
> > if (!buffer)
> > diff --git a/test/event-thread.cpp b/test/event-thread.cpp
> > index 12021710ef41..ef8a52c3de55 100644
> > --- a/test/event-thread.cpp
> > +++ b/test/event-thread.cpp
> > @@ -66,7 +66,7 @@ public:
> > }
> >
> > private:
> > - void readReady([[maybe_unused]] EventNotifier *notifier)
> > + void readReady()
> > {
> > size_ = read(notifier_->fd(), data_, sizeof(data_));
> > notified_ = true;
> > diff --git a/test/event.cpp b/test/event.cpp
> > index e338335c11e8..d4765eb14d12 100644
> > --- a/test/event.cpp
> > +++ b/test/event.cpp
> > @@ -22,7 +22,7 @@ using namespace libcamera;
> > class EventTest : public Test
> > {
> > protected:
> > - void readReady([[maybe_unused]] EventNotifier *notifier)
> > + void readReady()
> > {
> > size_ = read(notifier_->fd(), data_, sizeof(data_));
> > notified_ = true;
> > diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp
> > index 0ee51f71fd87..43562e608506 100644
> > --- a/test/ipa/ipa_interface_test.cpp
> > +++ b/test/ipa/ipa_interface_test.cpp
> > @@ -153,7 +153,7 @@ protected:
> > }
> >
> > private:
> > - void readTrace([[maybe_unused]] EventNotifier *notifier)
> > + void readTrace()
> > {
> > ssize_t s = read(notifier_->fd(), &trace_, sizeof(trace_));
> > if (s < 0) {
> > diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp
> > index 6507fb12d74b..7270bf4d2fe7 100644
> > --- a/test/ipc/unixsocket.cpp
> > +++ b/test/ipc/unixsocket.cpp
> > @@ -68,7 +68,7 @@ public:
> > }
> >
> > private:
> > - void readyRead([[maybe_unused]] IPCUnixSocket *ipc)
> > + void readyRead()
> > {
> > IPCUnixSocket::Payload message, response;
> > int ret;
> > @@ -447,7 +447,7 @@ private:
> > return 0;
> > }
> >
> > - void readyRead([[maybe_unused]] IPCUnixSocket *ipc)
> > + void readyRead()
> > {
> > if (!callResponse_) {
> > cerr << "Read ready without expecting data, fail." << endl;
> > diff --git a/test/ipc/unixsocket_ipc.cpp b/test/ipc/unixsocket_ipc.cpp
> > index 60317a4956b8..ab5d25572d83 100644
> > --- a/test/ipc/unixsocket_ipc.cpp
> > +++ b/test/ipc/unixsocket_ipc.cpp
> > @@ -65,7 +65,7 @@ public:
> > }
> >
> > private:
> > - void readyRead([[maybe_unused]] IPCUnixSocket *ipc)
> > + void readyRead()
> > {
> > IPCUnixSocket::Payload message;
> > int ret;
> > diff --git a/test/log/log_process.cpp b/test/log/log_process.cpp
> > index d138aa7ff562..a56a399848a7 100644
> > --- a/test/log/log_process.cpp
> > +++ b/test/log/log_process.cpp
> > @@ -126,8 +126,7 @@ protected:
> > }
> >
> > private:
> > - void procFinished([[maybe_unused]] Process *proc,
> > - enum Process::ExitStatus exitStatus, int exitCode)
> > + void procFinished(enum Process::ExitStatus exitStatus, int exitCode)
> > {
> > exitStatus_ = exitStatus;
> > exitCode_ = exitCode;
> > diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
> > index 8f7a1f05f681..378d680bf4ef 100644
> > --- a/test/process/process_test.cpp
> > +++ b/test/process/process_test.cpp
> > @@ -81,8 +81,7 @@ protected:
> > }
> >
> > private:
> > - void procFinished([[maybe_unused]] Process *proc,
> > - enum Process::ExitStatus exitStatus, int exitCode)
> > + void procFinished(enum Process::ExitStatus exitStatus, int exitCode)
> > {
> > exitStatus_ = exitStatus;
> > exitCode_ = exitCode;
> > diff --git a/test/timer-thread.cpp b/test/timer-thread.cpp
> > index 2c14865b74d5..f7e8743da9e6 100644
> > --- a/test/timer-thread.cpp
> > +++ b/test/timer-thread.cpp
> > @@ -39,7 +39,7 @@ public:
> > }
> >
> > private:
> > - void timeoutHandler([[maybe_unused]] Timer *timer)
> > + void timeoutHandler()
> > {
> > timeout_ = true;
> > }
> > diff --git a/test/timer.cpp b/test/timer.cpp
> > index 88f226e79f5f..be79d0100a58 100644
> > --- a/test/timer.cpp
> > +++ b/test/timer.cpp
> > @@ -56,7 +56,7 @@ public:
> > }
> >
> > private:
> > - void timeoutHandler([[maybe_unused]] Timer *timer)
> > + void timeoutHandler()
> > {
> > expiration_ = std::chrono::steady_clock::now();
> > count_++;
> > diff --git a/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl b/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl
> > index b4cd1aa9e823..c54ecdb90a1a 100644
> > --- a/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl
> > +++ b/utils/ipc/generators/libcamera_templates/module_ipa_proxy_worker.cpp.tmpl
> > @@ -57,7 +57,7 @@ public:
> >
> > ~{{proxy_worker_name}}() {}
> >
> > - void readyRead([[maybe_unused]] IPCUnixSocket *socket)
> > + void readyRead()
> > {
> > IPCUnixSocket::Payload _message;
> > int _retRecv = socket_.receive(&_message);
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list