summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCollin <iCollin@users.noreply.github.com>2020-05-28 12:57:41 -0700
committerGitHub <noreply@github.com>2020-05-28 15:57:41 -0400
commit97620cd2b73a65d5a7d826563fa8e44966bef56c (patch)
tree77431f0ed73bf0a74fccf102329ec6a01f574abf
parent40d1d3ee62583e6dee24dad1edd394bf08800a2f (diff)
downloadsdl_core-97620cd2b73a65d5a7d826563fa8e44966bef56c.tar.gz
ensure delegates are destroyed before their threads (#3388)
-rw-r--r--src/components/telemetry_monitor/src/telemetry_monitor.cc3
-rw-r--r--src/components/utils/src/timer.cc2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/components/telemetry_monitor/src/telemetry_monitor.cc b/src/components/telemetry_monitor/src/telemetry_monitor.cc
index e2f45b7576..f6cac49f59 100644
--- a/src/components/telemetry_monitor/src/telemetry_monitor.cc
+++ b/src/components/telemetry_monitor/src/telemetry_monitor.cc
@@ -107,6 +107,9 @@ void TelemetryMonitor::Stop() {
if (thread_) {
thread_->stop();
thread_->join();
+ if (thread_->delegate()) {
+ streamer_.reset();
+ }
threads::DeleteThread(thread_);
}
thread_ = NULL;
diff --git a/src/components/utils/src/timer.cc b/src/components/utils/src/timer.cc
index d89c7277af..8e854654de 100644
--- a/src/components/utils/src/timer.cc
+++ b/src/components/utils/src/timer.cc
@@ -65,8 +65,8 @@ timer::Timer::~Timer() {
StopDelegate();
single_shot_ = true;
- DeleteThread(thread_);
delegate_.reset();
+ DeleteThread(thread_);
DCHECK(task_);
delete task_;
LOG4CXX_DEBUG(logger_, "Timer " << name_ << " has been destroyed");