diff options
author | Collin <iCollin@users.noreply.github.com> | 2020-05-28 12:57:41 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-28 15:57:41 -0400 |
commit | 97620cd2b73a65d5a7d826563fa8e44966bef56c (patch) | |
tree | 77431f0ed73bf0a74fccf102329ec6a01f574abf | |
parent | 40d1d3ee62583e6dee24dad1edd394bf08800a2f (diff) | |
download | sdl_core-97620cd2b73a65d5a7d826563fa8e44966bef56c.tar.gz |
ensure delegates are destroyed before their threads (#3388)
-rw-r--r-- | src/components/telemetry_monitor/src/telemetry_monitor.cc | 3 | ||||
-rw-r--r-- | src/components/utils/src/timer.cc | 2 |
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"); |