[libcamera-devel] [PATCH v3 01/11] libcamera: Print Timer identifier
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Wed Dec 1 01:32:37 CET 2021
Hi Jacopo,
Thank you for the patch.
On Wed, Dec 01, 2021 at 12:36:24AM +0100, Jacopo Mondi wrote:
> The Timer debug output does not report to which timer a condition refers
> to. Fix that by printing the Timer address.
Do I assume correctly that this comes from an issue you were trying to
debug ? If so, could you share some information (for my own information,
doesn't have to be recorded in the commit message) ?
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
> src/libcamera/base/event_dispatcher_poll.cpp | 3 ++-
> src/libcamera/base/timer.cpp | 4 ++--
> 2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/src/libcamera/base/event_dispatcher_poll.cpp b/src/libcamera/base/event_dispatcher_poll.cpp
> index 8ee22d5adcc4..20cc6e617189 100644
> --- a/src/libcamera/base/event_dispatcher_poll.cpp
> +++ b/src/libcamera/base/event_dispatcher_poll.cpp
> @@ -214,7 +214,8 @@ int EventDispatcherPoll::poll(std::vector<struct pollfd> *pollfds)
> timeout = { 0, 0 };
>
> LOG(Event, Debug)
> - << "timeout " << timeout.tv_sec << "."
> + << "timeout " << nextTimer << " "
> + << timeout.tv_sec << "."
"timeout <pointer> <value>" could be a bit hard to read, how about
LOG(Event, Debug)
<< "next timer " << nextTimer << " expires in "
<< timeout.tv_sec << "."
<< std::setfill('0') << std::setw(9)
<< timeout.tv_nsec;
If you think that's overkill you can ignore it.
> << std::setfill('0') << std::setw(9)
> << timeout.tv_nsec;
> }
> diff --git a/src/libcamera/base/timer.cpp b/src/libcamera/base/timer.cpp
> index 9c54352d46bd..187336e3a1a4 100644
> --- a/src/libcamera/base/timer.cpp
> +++ b/src/libcamera/base/timer.cpp
> @@ -96,7 +96,7 @@ void Timer::start(std::chrono::milliseconds duration)
> void Timer::start(std::chrono::steady_clock::time_point deadline)
> {
> if (Thread::current() != thread()) {
> - LOG(Timer, Error) << "Timer can't be started from another thread";
> + LOG(Timer, Error) << "Timer " << this << " << can't be started from another thread";
Maybe a timer ID would be useful to have in the future for debugging
purpose. Then we could inherit from Loggable. For now this will do.
Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> return;
> }
>
> @@ -128,7 +128,7 @@ void Timer::stop()
> return;
>
> if (Thread::current() != thread()) {
> - LOG(Timer, Error) << "Timer can't be stopped from another thread";
> + LOG(Timer, Error) << "Timer " << this << " can't be stopped from another thread";
> return;
> }
>
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list