Fix ScriptEngine thread being deleted too early

The thread appeared to be deleted before waitTillDoneRunning was
finished. This is a speculative fix. This ensures that the QThread isn't
deleted until after the ScriptEngine is deleted.
This commit is contained in:
Ryan Huffman 2017-05-22 15:31:11 -07:00
parent bfb44693a3
commit 09c98b3ac3

View file

@ -231,7 +231,7 @@ void ScriptEngine::disconnectNonEssentialSignals() {
// Ensure the thread should be running, and does exist
if (_isRunning && _isThreaded && (workerThread = thread())) {
connect(this, &ScriptEngine::doneRunning, workerThread, &QThread::quit);
connect(workerThread, &QThread::finished, workerThread, &QObject::deleteLater);
connect(this, &QObject::destroyed, workerThread, &QObject::deleteLater);
}
}
@ -346,7 +346,7 @@ void ScriptEngine::runInThread() {
// disconnectNonEssentialSignals() method
connect(workerThread, &QThread::started, this, &ScriptEngine::run);
connect(this, &ScriptEngine::doneRunning, workerThread, &QThread::quit);
connect(workerThread, &QThread::finished, workerThread, &QObject::deleteLater);
connect(this, &QObject::destroyed, workerThread, &QObject::deleteLater);
workerThread->start();
}