summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcollin <collin+i@collinmcqueen.com>2020-05-21 15:31:25 -0400
committercollin <collin+i@collinmcqueen.com>2020-05-21 15:31:25 -0400
commit30f5e86d58b33c01fa8be06ca497f51c6e41a30d (patch)
treef876d36564a4b10457f5433ec71de9167a50f346
parent42d6654e4293c61441e3c0ca90cb57ccbe3682c5 (diff)
downloadsdl_core-fix/issue_3387.tar.gz
ensure delegates are destroyed before their threadsfix/issue_3387
-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");