diff --git a/libguh-core/guhcore.cpp b/libguh-core/guhcore.cpp index 39f4555c..0cc2c7b6 100644 --- a/libguh-core/guhcore.cpp +++ b/libguh-core/guhcore.cpp @@ -121,13 +121,17 @@ GuhCore *GuhCore::instance() GuhCore::~GuhCore() { m_logger->logSystemEvent(m_timeManager->currentDateTime(), false); + + // Make sure DeviceManager is teared down at first so plugins don't access any ressources any more. + delete m_deviceManager; } /*! Destroyes the \l{GuhCore} instance. */ void GuhCore::destroy() { - if (s_instance) + if (s_instance) { delete s_instance; + } s_instance = 0; } diff --git a/libguh-core/hardwaremanagerimplementation.cpp b/libguh-core/hardwaremanagerimplementation.cpp index 799af48f..bbbdf5ec 100644 --- a/libguh-core/hardwaremanagerimplementation.cpp +++ b/libguh-core/hardwaremanagerimplementation.cpp @@ -84,6 +84,11 @@ HardwareManagerImplementation::HardwareManagerImplementation(QObject *parent) : qCDebug(dcHardware()) << "HardwareManager D-Bus service set up."; } +HardwareManagerImplementation::~HardwareManagerImplementation() +{ + qCDebug(dcApplication()) << "Shutting down Hardware Manager"; +} + Radio433 *HardwareManagerImplementation::radio433() { return m_radio433; diff --git a/libguh-core/hardwaremanagerimplementation.h b/libguh-core/hardwaremanagerimplementation.h index 1e036774..640d8180 100644 --- a/libguh-core/hardwaremanagerimplementation.h +++ b/libguh-core/hardwaremanagerimplementation.h @@ -49,6 +49,7 @@ class HardwareManagerImplementation : public HardwareManager public: explicit HardwareManagerImplementation(QObject *parent = nullptr); + ~HardwareManagerImplementation(); Radio433 *radio433(); PluginTimerManager *pluginTimerManager();