mirror of
https://github.com/overte-org/overte.git
synced 2025-04-21 20:44:14 +02:00
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.
This commit is contained in:
parent
d12fdb9726
commit
4dbfd3bfd9
2 changed files with 4 additions and 4 deletions
|
@ -183,7 +183,7 @@ void ScriptEngine::runInThread() {
|
|||
|
||||
QSet<ScriptEngine*> ScriptEngine::_allKnownScriptEngines;
|
||||
QMutex ScriptEngine::_allScriptsMutex;
|
||||
bool ScriptEngine::_stoppingAllScripts = false;
|
||||
std::atomic<bool> ScriptEngine::_stoppingAllScripts = false;
|
||||
|
||||
void ScriptEngine::stopAllScripts(QObject* application) {
|
||||
_allScriptsMutex.lock();
|
||||
|
|
|
@ -166,8 +166,8 @@ signals:
|
|||
protected:
|
||||
QString _scriptContents;
|
||||
QString _parentURL;
|
||||
bool _isFinished { false };
|
||||
bool _isRunning { false };
|
||||
std::atomic<bool> _isFinished { false };
|
||||
std::atomic<bool> _isRunning { false };
|
||||
int _evaluatesPending { 0 };
|
||||
bool _isInitialized { false };
|
||||
QHash<QTimer*, QScriptValue> _timerFunctionMap;
|
||||
|
@ -206,7 +206,7 @@ protected:
|
|||
|
||||
static QSet<ScriptEngine*> _allKnownScriptEngines;
|
||||
static QMutex _allScriptsMutex;
|
||||
static bool _stoppingAllScripts;
|
||||
static std::atomic<bool> _stoppingAllScripts;
|
||||
};
|
||||
|
||||
#endif // hifi_ScriptEngine_h
|
Loading…
Reference in a new issue