[libcamera-devel] [PATCH 2/9] libcamera: timer: Don't reset deadline after time out

Jacopo Mondi jacopo at jmondi.org
Sun Oct 6 20:25:11 CEST 2019


Hi Laurent,

On Sun, Oct 06, 2019 at 08:32:19AM +0300, Laurent Pinchart wrote:
> Users of the Timer class may benefit from retrieving the timer deadline
> after it times out. This is currently not possible as the deadline is
> reset to 0 when the timer times out or is stopped. Fix this by not
> resetting the deadline, and adding a new running_ field to the Timer
> class to implement isRunning().
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
>  include/libcamera/timer.h | 1 +
>  src/libcamera/timer.cpp   | 8 ++++----
>  2 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/include/libcamera/timer.h b/include/libcamera/timer.h
> index 09f426a59993..3540efb41b6f 100644
> --- a/include/libcamera/timer.h
> +++ b/include/libcamera/timer.h
> @@ -39,6 +39,7 @@ private:
>  	void registerTimer();
>  	void unregisterTimer();
>
> +	bool running_;
>  	std::chrono::steady_clock::time_point deadline_;
>  };
>
> diff --git a/src/libcamera/timer.cpp b/src/libcamera/timer.cpp
> index 34410bab0fb0..8c74e1015e43 100644
> --- a/src/libcamera/timer.cpp
> +++ b/src/libcamera/timer.cpp
> @@ -43,7 +43,7 @@ LOG_DEFINE_CATEGORY(Timer)
>   * \param[in] parent The parent Object
>   */
>  Timer::Timer(Object *parent)
> -	: Object(parent)
> +	: Object(parent), running_(false)
>  {
>  }
>
> @@ -89,17 +89,17 @@ void Timer::start(std::chrono::milliseconds duration)
>  void Timer::stop()
>  {
>  	unregisterTimer();
> -
> -	deadline_ = utils::time_point();
>  }
>
>  void Timer::registerTimer()
>  {
>  	thread()->eventDispatcher()->registerTimer(this);
> +	running_ = true;
>  }
>
>  void Timer::unregisterTimer()
>  {
> +	running_ = false;
>  	thread()->eventDispatcher()->unregisterTimer(this);
>  }
>
> @@ -109,7 +109,7 @@ void Timer::unregisterTimer()
>   */
>  bool Timer::isRunning() const
>  {
> -	return deadline_ != utils::time_point();

weird, i would have expected this to be deadline < utils::time_point()

Anyway
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>

Thanks
  j

> +	return running_;
>  }
>
>  /**
> --
> 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/20191006/f7860cf6/attachment.sig>


More information about the libcamera-devel mailing list