summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2013-07-23 09:25:42 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2013-07-23 12:32:10 +0200
commit617d1f73cf69b96e467e31bcc8a864b9184ebdae (patch)
tree02ae6e076a6682a22ba2587f0f904c5477470051
parent5b666c9e530ac977c879ee4ea0d59046440b3bd9 (diff)
downloadqbs-617d1f73cf69b96e467e31bcc8a864b9184ebdae.tar.gz
remove superfluous engine mapping
JsCommandExecutorThreadObject is running in exactly one thread now. There's no need to save engines per thread anymore. Change-Id: I9328cf840789131397e7713efdc105f0b56aeee8 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
-rw-r--r--src/lib/buildgraph/jscommandexecutor.cpp28
1 files changed, 7 insertions, 21 deletions
diff --git a/src/lib/buildgraph/jscommandexecutor.cpp b/src/lib/buildgraph/jscommandexecutor.cpp
index 7358d4a59..45815a104 100644
--- a/src/lib/buildgraph/jscommandexecutor.cpp
+++ b/src/lib/buildgraph/jscommandexecutor.cpp
@@ -40,11 +40,7 @@
#include <tools/codelocation.h>
#include <tools/error.h>
-#include <QDir>
#include <QEventLoop>
-#include <QHash>
-#include <QMutex>
-#include <QMutexLocker>
#include <QThread>
#include <QTimer>
@@ -64,6 +60,7 @@ class JsCommandExecutorThreadObject : public QObject
public:
JsCommandExecutorThreadObject(const Logger &logger)
: m_logger(logger)
+ , m_scriptEngine(0)
{
}
@@ -80,7 +77,7 @@ public slots:
{
m_result.success = true;
m_result.errorMessage.clear();
- ScriptEngine * const scriptEngine = lookupEngine();
+ ScriptEngine * const scriptEngine = provideScriptEngine();
QString trafoPtrStr = QString::number((qulonglong)transformer);
if (scriptEngine->globalObject().property("_qbs_transformer_ptr").toString() != trafoPtrStr) {
scriptEngine->globalObject().setProperty("_qbs_transformer_ptr", scriptEngine->toScriptValue(trafoPtrStr));
@@ -117,29 +114,18 @@ public slots:
}
private:
- ScriptEngine *lookupEngine()
+ ScriptEngine *provideScriptEngine()
{
- QThread * const currentThread = QThread::currentThread();
- QMutexLocker locker(&m_cacheMutex);
- ScriptEngine * scriptEngine = m_enginesPerThread.value(currentThread);
- if (!scriptEngine) {
- scriptEngine = new ScriptEngine(m_logger);
- m_enginesPerThread.insert(currentThread, scriptEngine);
- } else {
- scriptEngine->setLogger(m_logger);
- }
- return scriptEngine;
+ if (!m_scriptEngine)
+ m_scriptEngine = new ScriptEngine(m_logger, this);
+ return m_scriptEngine;
}
- static QHash<QThread *, ScriptEngine *> m_enginesPerThread;
- static QMutex m_cacheMutex;
Logger m_logger;
+ ScriptEngine *m_scriptEngine;
JavaScriptCommandResult m_result;
};
-QHash<QThread *, ScriptEngine *> JsCommandExecutorThreadObject::m_enginesPerThread;
-QMutex JsCommandExecutorThreadObject::m_cacheMutex;
-
JsCommandExecutor::JsCommandExecutor(const Logger &logger, QObject *parent)
: AbstractCommandExecutor(logger, parent)