diff options
author | collin <collin+i@collinmcqueen.com> | 2020-05-21 15:31:25 -0400 |
---|---|---|
committer | collin <collin+i@collinmcqueen.com> | 2020-05-21 15:31:25 -0400 |
commit | 30f5e86d58b33c01fa8be06ca497f51c6e41a30d (patch) | |
tree | f876d36564a4b10457f5433ec71de9167a50f346 | |
parent | 42d6654e4293c61441e3c0ca90cb57ccbe3682c5 (diff) | |
download | sdl_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.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"); |