From 36c35345fa3ba4eb7c7652caae6eecb44ba37770 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 6 Oct 2019 07:03:34 +0300 Subject: libcamera: timer: Don't reset deadline after time out MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Niklas Söderlund Reviewed-by: Jacopo Mondi --- src/libcamera/timer.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/libcamera/timer.cpp') diff --git a/src/libcamera/timer.cpp b/src/libcamera/timer.cpp index 34410bab..8c74e101 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(); + return running_; } /** -- cgit v1.2.1