[libcamera-devel] [PATCH v2 1/3] libcamera: timer: Stop timer when it is deleted

Niklas Söderlund niklas.soderlund at ragnatech.se
Sun Jun 30 18:25:12 CEST 2019


If a timer is running while it's deleted it is still register with the
event dispatcher. This causes a segmentation fault when the timer
time-out and its signal is emitted. Fix this my stopping the timer when
it's deleted.

Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
---
 include/libcamera/timer.h | 1 +
 src/libcamera/timer.cpp   | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/include/libcamera/timer.h b/include/libcamera/timer.h
index 97dcc01f493dc70d..f082339b1fed9de7 100644
--- a/include/libcamera/timer.h
+++ b/include/libcamera/timer.h
@@ -17,6 +17,7 @@ class Timer
 {
 public:
 	Timer();
+	~Timer();
 
 	void start(unsigned int msec);
 	void stop();
diff --git a/src/libcamera/timer.cpp b/src/libcamera/timer.cpp
index 1cce45085c61be2f..0dcb4e767be30b32 100644
--- a/src/libcamera/timer.cpp
+++ b/src/libcamera/timer.cpp
@@ -43,6 +43,11 @@ Timer::Timer()
 {
 }
 
+Timer::~Timer()
+{
+	stop();
+}
+
 /**
  * \brief Start or restart the timer with a timeout of \a msec
  * \param[in] msec The timer duration in milliseconds
-- 
2.21.0



More information about the libcamera-devel mailing list