Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 3 files). Show all
Unified · Split
| @@ -94,6 +94,7 @@ ScriptEngine::ScriptEngine(const QString& scriptContents, const QString& fileNam · 93 unmodified lines | |||
| 94 | _isUserLoaded(false), | 94 | _isUserLoaded(false), |
| 95 | _arrayBufferClass(new ArrayBufferClass(this)) | 95 | _arrayBufferClass(new ArrayBufferClass(this)) |
| 96 | { | 96 | { |
| 97 | qDebug() << "[" << QThread::currentThread() << "]" << "ScriptEngine::ScriptEngine() " << getFilename() << "[" << this << "]"; | ||
| 97 | _allKnownScriptEngines.insert(this); | 98 | _allKnownScriptEngines.insert(this); |
| 98 | } | 99 | } |
| 99 | 100 | ||
| @@ -104,28 +105,31 @@ ScriptEngine::~ScriptEngine() { · 4 unmodified lines | |||
| 104 | 105 | ||
| 105 | QSet<ScriptEngine*> ScriptEngine::_allKnownScriptEngines; | 106 | QSet<ScriptEngine*> ScriptEngine::_allKnownScriptEngines; |
| 106 | 107 | ||
| 107 | void ScriptEngine::gracefullyStopAllScripts() { | 108 | void ScriptEngine::gracefullyStopAllScripts(QObject* application) { |
| 108 | qDebug() << "[" << QThread::currentThread() << "]" << "ScriptEngine::gracefullyStopAllScripts() ----------- START ------------------"; | 109 | qDebug() << "[" << QThread::currentThread() << "]" << "ScriptEngine::gracefullyStopAllScripts() ----------- START ------------------"; |
| 109 | 110 | ||
| 110 | QSet<ScriptEngine*>::const_iterator i = _allKnownScriptEngines.constBegin(); | 111 | |
| 111 | while (i != _allKnownScriptEngines.constEnd()) { | 112 | QSetIterator<ScriptEngine*> i(_allKnownScriptEngines); |
| 112 | ScriptEngine* scriptEngine = *i; | 113 | while (i.hasNext()) { |
| 113 | qDebug() << scriptEngine; | 114 | ScriptEngine* scriptEngine = i.next(); |
| 115 | qDebug() << (void*)scriptEngine; | ||
| 114 | 116 | ||
| 115 | if (scriptEngine->isRunning()) { | 117 | if (scriptEngine->isRunning()) { |
| 116 | qDebug() << "scriptEngine still alive:" << scriptEngine->getFilename() << "[" << scriptEngine << "]"; | 118 | qDebug() << "scriptEngine still alive:" << scriptEngine->getFilename() << "[" << scriptEngine << "]"; |
| 117 | 119 | ||
| 118 | QEventLoop loop; | 120 | QEventLoop loop; |
| 119 | QObject::connect(scriptEngine, &ScriptEngine::doneRunning, &loop, &QEventLoop::quit); | 121 | QObject::connect(scriptEngine, &ScriptEngine::doneRunning, &loop, &QEventLoop::quit); |
| 122 | |||
| 123 | scriptEngine->disconnect(application); | ||
| 120 | 124 | ||
| 121 | scriptEngine->stop(); | 125 | scriptEngine->stop(); |
| 122 | 126 | ||
| 123 | qDebug() << "waiting on script to stop... "; | 127 | qDebug() << "waiting on script to stop... "; |
| 124 | loop.exec(); | 128 | loop.exec(); |
| 125 | qDebug() << "done waiting... "; | 129 | qDebug() << "done waiting... "; |
| 130 | } else { | ||
| 131 | qDebug() << "WARNING! scriptEngine [" << (void*)scriptEngine << "] still in _allKnownScriptEngines but not running??? <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"; | ||
| 126 | } | 132 | } |
| 127 | |||
| 128 | ++i; | ||
| 129 | } | 133 | } |
| 130 | qDebug() << "[" << QThread::currentThread() << "]" << "ScriptEngine::gracefullyStopAllScripts() ----------- DONE ------------------"; | 134 | qDebug() << "[" << QThread::currentThread() << "]" << "ScriptEngine::gracefullyStopAllScripts() ----------- DONE ------------------"; |
| 131 | } | 135 | } |