History

more hacking

ZappoMan committed 11 years ago

Commit 8c4474b1 parent b2199373 files · +14 −10Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 3 files). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+11−7
@@ -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
105QSet<ScriptEngine*> ScriptEngine::_allKnownScriptEngines;106QSet<ScriptEngine*> ScriptEngine::_allKnownScriptEngines;
106 107
107void ScriptEngine::gracefullyStopAllScripts() {108void 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}