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
///
void freeObjects();
void freeObjects(bool emitCloseSignal=false);
static Hyperion* initInstance(const QJsonObject& qjsonConfig, const QString configFile);
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
clearall();
@ -464,7 +467,7 @@ void Hyperion::freeObjects()
Hyperion::~Hyperion()
{
freeObjects();
freeObjects(false);
}
unsigned Hyperion::getLedCount() const

View File

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