send close signal only on restart to avoid problems while destructiong on normal exit (#376)

This commit is contained in:
redPanther 2017-01-22 19:36:52 +01:00 committed by GitHub
parent 3aa2573b88
commit cde5a4dff1
3 changed files with 8 additions and 5 deletions

View File

@ -70,7 +70,7 @@ public:
/// ///
/// free all alocated objects, should be called only from constructor or before restarting hyperion /// free all alocated objects, should be called only from constructor or before restarting hyperion
/// ///
void freeObjects(); void freeObjects(bool emitCloseSignal=false);
static Hyperion* initInstance(const QJsonObject& qjsonConfig, const QString configFile); static Hyperion* initInstance(const QJsonObject& qjsonConfig, const QString configFile);
static Hyperion* getInstance(); static Hyperion* getInstance();

View File

@ -447,9 +447,12 @@ Hyperion::Hyperion(const QJsonObject &qjsonConfig, const QString configFile)
} }
void Hyperion::freeObjects() void Hyperion::freeObjects(bool emitCloseSignal)
{ {
emit closing(); if (emitCloseSignal)
{
emit closing();
}
// switch off all leds // switch off all leds
clearall(); clearall();
@ -464,7 +467,7 @@ void Hyperion::freeObjects()
Hyperion::~Hyperion() Hyperion::~Hyperion()
{ {
freeObjects(); freeObjects(false);
} }
unsigned Hyperion::getLedCount() const unsigned Hyperion::getLedCount() const

View File

@ -930,7 +930,7 @@ void JsonClientConnection::handleConfigCommand(const QJsonObject& message, const
} }
else if (subcommand == "reload") else if (subcommand == "reload")
{ {
_hyperion->freeObjects(); _hyperion->freeObjects(true);
Process::restartHyperion(); Process::restartHyperion();
sendErrorReply("failed to restart hyperion", full_command, tan); sendErrorReply("failed to restart hyperion", full_command, tan);
} }