History

Fix concurrency issues for bools in ScriptEngine

Several member variables were unsafely being accessed from multiple threads. Making these variables std::atomic makes this safe.

Ryan Huffman committed 10 years ago

Commit 4dbfd3b1 parent d12fdb92 files · +4 −4Browse files

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

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+1−1
@@ -183,7 +183,7 @@ void ScriptEngine::runInThread() { · 182 unmodified lines
183 183
184QSet<ScriptEngine*> ScriptEngine::_allKnownScriptEngines;184QSet<ScriptEngine*> ScriptEngine::_allKnownScriptEngines;
185QMutex ScriptEngine::_allScriptsMutex;185QMutex ScriptEngine::_allScriptsMutex;
186bool ScriptEngine::_stoppingAllScripts = false;186std::atomic<bool> ScriptEngine::_stoppingAllScripts = false;
187 187
188void ScriptEngine::stopAllScripts(QObject* application) {188void ScriptEngine::stopAllScripts(QObject* application) {
189 _allScriptsMutex.lock();189 _allScriptsMutex.lock();