[libcamera-devel] [PATCH 5/9] libcamera: timer: Allow restarting a timer before expiration

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Oct 6 07:32:22 CEST 2019


The Timer API allows restarting a timer before expiration. This isn't
correctly implemented, fix it.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/libcamera/timer.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/libcamera/timer.cpp b/src/libcamera/timer.cpp
index 8c74e1015e43..5d4e52713e6e 100644
--- a/src/libcamera/timer.cpp
+++ b/src/libcamera/timer.cpp
@@ -75,6 +75,9 @@ void Timer::start(std::chrono::milliseconds duration)
 		<< duration.count() << ": deadline "
 		<< utils::time_point_to_string(deadline_);
 
+	if (isRunning())
+		unregisterTimer();
+
 	registerTimer();
 }
 
@@ -88,6 +91,9 @@ void Timer::start(std::chrono::milliseconds duration)
  */
 void Timer::stop()
 {
+	if (!isRunning())
+		return;
+
 	unregisterTimer();
 }
 
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list