Showing the changes to libraries/script-engine/src/ScriptEngines.cpp (1 of 2 files). Show all
Unified · Split
| @@ -351,6 +351,7 @@ void ScriptEngines::stopAllScripts(bool restart) { · 350 unmodified lines | |||
| 351 | reloadScript(scriptName); | 351 | reloadScript(scriptName); |
| 352 | }); | 352 | }); |
| 353 | } | 353 | } |
| 354 | it.value()->flagAsStopping(); | ||
| 354 | QMetaObject::invokeMethod(it.value(), "stop"); | 355 | QMetaObject::invokeMethod(it.value(), "stop"); |
| 355 | //it.value()->stop(); | 356 | //it.value()->stop(); |
| 356 | qCDebug(scriptengine) << "stopping script..." << it.key(); | 357 | qCDebug(scriptengine) << "stopping script..." << it.key(); |
| @@ -369,6 +370,7 @@ bool ScriptEngines::stopScript(const QString& rawScriptURL, bool restart) { · 12 unmodified lines | |||
| 369 | if (_scriptEnginesHash.contains(scriptURL)) { | 370 | if (_scriptEnginesHash.contains(scriptURL)) { |
| 370 | ScriptEngine* scriptEngine = _scriptEnginesHash[scriptURL]; | 371 | ScriptEngine* scriptEngine = _scriptEnginesHash[scriptURL]; |
| 371 | if (restart) { | 372 | if (restart) { |
| 373 | scriptEngine->flagAsStopping(); | ||
| 372 | auto scriptCache = DependencyManager::get<ScriptCache>(); | 374 | auto scriptCache = DependencyManager::get<ScriptCache>(); |
| 373 | scriptCache->deleteScript(scriptURL); | 375 | scriptCache->deleteScript(scriptURL); |
| 374 | connect(scriptEngine, &ScriptEngine::finished, this, [this](QString scriptName, ScriptEngine* engine) { | 376 | connect(scriptEngine, &ScriptEngine::finished, this, [this](QString scriptName, ScriptEngine* engine) { |
| @@ -454,7 +456,7 @@ ScriptEngine* ScriptEngines::getScriptEngine(const QUrl& rawScriptURL) { · 79 unmodified lines | |||
| 454 | QReadLocker lock(&_scriptEnginesHashLock); | 456 | QReadLocker lock(&_scriptEnginesHashLock); |
| 455 | const QUrl scriptURL = normalizeScriptURL(rawScriptURL); | 457 | const QUrl scriptURL = normalizeScriptURL(rawScriptURL); |
| 456 | auto it = _scriptEnginesHash.find(scriptURL); | 458 | auto it = _scriptEnginesHash.find(scriptURL); |
| 457 | if (it != _scriptEnginesHash.end()) { | 459 | if (it != _scriptEnginesHash.end() && !it.value()->isStopping()) { |
| 458 | result = it.value(); | 460 | result = it.value(); |
| 459 | } | 461 | } |
| 460 | } | 462 | } |