diff options
author | jacobkeeler <jacob.keeler@livioradio.com> | 2018-02-27 17:26:24 -0500 |
---|---|---|
committer | jacobkeeler <jacob.keeler@livioradio.com> | 2018-02-27 17:26:24 -0500 |
commit | 16b8b6dce147b1936533047a06b52e86593c094c (patch) | |
tree | 7e9a92936c45577c91a3bcd970f58e1df95b97ba | |
parent | 6b65db0bb49193dcdbbbd8a099520e41361a5419 (diff) | |
download | sdl_core-fix/message_broker_cleanup.tar.gz |
Fix crash and memory leaks in message broker cleanupfix/message_broker_cleanup
-rw-r--r-- | src/appMain/life_cycle.cc | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/appMain/life_cycle.cc b/src/appMain/life_cycle.cc index d13b05ade5..fc8441f28c 100644 --- a/src/appMain/life_cycle.cc +++ b/src/appMain/life_cycle.cc @@ -316,7 +316,9 @@ void LifeCycle::StopComponents() { DCHECK_OR_RETURN_VOID(hmi_handler_); hmi_handler_->RemoveHMIMessageAdapter(dbus_adapter_); dbus_adapter_->Shutdown(); - dbus_adapter_thread_->join(); + if (dbus_adapter_thread_ != NULL) { + dbus_adapter_thread_->join(); + } delete dbus_adapter_; dbus_adapter_ = NULL; delete dbus_adapter_thread_; @@ -330,18 +332,20 @@ void LifeCycle::StopComponents() { hmi_handler_->RemoveHMIMessageAdapter(mb_adapter_); mb_adapter_->unregisterController(); mb_adapter_->exitReceivingThread(); - mb_adapter_thread_->join(); + if (mb_adapter_thread_ != NULL) { + mb_adapter_thread_->join(); + } delete mb_adapter_; mb_adapter_ = NULL; + delete mb_adapter_thread_; + mb_adapter_thread_ = NULL; } - + LOG4CXX_INFO(logger_, "Destroying Message Broker"); +#endif // MESSAGEBROKER_HMIADAPTER DCHECK_OR_RETURN_VOID(hmi_handler_); delete hmi_handler_; hmi_handler_ = NULL; - LOG4CXX_INFO(logger_, "Destroying Message Broker"); -#endif // MESSAGEBROKER_HMIADAPTER - #ifdef TELEMETRY_MONITOR // It's important to delete tester Obcervers after TM adapters destruction if (telemetry_monitor_) { |