summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-10-06 07:03:34 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2019-10-07 06:02:19 +0300
commit36c35345fa3ba4eb7c7652caae6eecb44ba37770 (patch)
treeedd85ce15e485267dbc65fa8c6a8f8b4cbf81ba6
parente85f42110f411ec9c9b30d7f8f1a57c02e9cb01f (diff)
libcamera: timer: Don't reset deadline after time out
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@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
-rw-r--r--include/libcamera/timer.h1
-rw-r--r--src/libcamera/timer.cpp8
2 files changed, 5 insertions, 4 deletions
diff --git a/include/libcamera/timer.h b/include/libcamera/timer.h
index 09f426a5..3540efb4 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 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_;
}
/**