forked from qt-creator/qt-creator
Merge remote branch 'origin/2.0'
Conflicts: README doc/qt-html-templates.qdocconf doc/qtcreator.qdoc doc/qtcreator.qdocconf src/app/Info.plist src/plugins/bineditor/BinEditor.pluginspec src/plugins/bookmarks/Bookmarks.pluginspec src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec src/plugins/coreplugin/Core.pluginspec src/plugins/coreplugin/coreconstants.h src/plugins/cpaster/CodePaster.pluginspec src/plugins/cppeditor/CppEditor.pluginspec src/plugins/cpptools/CppTools.pluginspec src/plugins/cvs/CVS.pluginspec src/plugins/debugger/Debugger.pluginspec src/plugins/designer/Designer.pluginspec src/plugins/fakevim/FakeVim.pluginspec src/plugins/find/Find.pluginspec src/plugins/genericprojectmanager/GenericProjectManager.pluginspec src/plugins/git/ScmGit.pluginspec src/plugins/helloworld/HelloWorld.pluginspec src/plugins/help/Help.pluginspec src/plugins/locator/Locator.pluginspec src/plugins/mercurial/Mercurial.pluginspec src/plugins/perforce/Perforce.pluginspec src/plugins/projectexplorer/ProjectExplorer.pluginspec src/plugins/qmldesigner/QmlDesigner.pluginspec src/plugins/qmlinspector/QmlInspector.pluginspec src/plugins/qmljseditor/QmlJSEditor.pluginspec src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec src/plugins/regexp/RegExp.pluginspec src/plugins/resourceeditor/ResourceEditor.pluginspec src/plugins/snippets/Snippets.pluginspec src/plugins/subversion/Subversion.pluginspec src/plugins/texteditor/TextEditor.pluginspec src/plugins/vcsbase/VCSBase.pluginspec src/plugins/welcome/Welcome.pluginspec
This commit is contained in:
@@ -153,6 +153,10 @@ ProFileOption::ProFileOption()
|
||||
#endif
|
||||
|
||||
cache = 0;
|
||||
|
||||
#ifdef PROEVALUATOR_THREAD_SAFE
|
||||
base_inProgress = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
ProFileOption::~ProFileOption()
|
||||
@@ -2032,7 +2036,21 @@ ProFileEvaluator::Private::VisitReturn ProFileEvaluator::Private::visitProFile(P
|
||||
|
||||
if (m_parsePreAndPostFiles) {
|
||||
|
||||
#ifdef PROEVALUATOR_THREAD_SAFE
|
||||
{
|
||||
QMutexLocker locker(&m_option->mutex);
|
||||
if (m_option->base_inProgress) {
|
||||
QThreadPool::globalInstance()->releaseThread();
|
||||
m_option->cond.wait(&m_option->mutex);
|
||||
QThreadPool::globalInstance()->reserveThread();
|
||||
} else
|
||||
#endif
|
||||
if (m_option->base_valuemap.isEmpty()) {
|
||||
#ifdef PROEVALUATOR_THREAD_SAFE
|
||||
m_option->base_inProgress = true;
|
||||
locker.unlock();
|
||||
#endif
|
||||
|
||||
// ### init QMAKE_QMAKE, QMAKE_SH
|
||||
// ### init QMAKE_EXT_{C,H,CPP,OBJ}
|
||||
// ### init TEMPLATE_PREFIX
|
||||
@@ -2139,7 +2157,16 @@ ProFileEvaluator::Private::VisitReturn ProFileEvaluator::Private::visitProFile(P
|
||||
|
||||
evaluateFeatureFile(QLatin1String("default_pre.prf"),
|
||||
&m_option->base_valuemap, &m_option->base_functions);
|
||||
|
||||
#ifdef PROEVALUATOR_THREAD_SAFE
|
||||
locker.relock();
|
||||
m_option->base_inProgress = false;
|
||||
m_option->cond.wakeAll();
|
||||
#endif
|
||||
}
|
||||
#ifdef PROEVALUATOR_THREAD_SAFE
|
||||
}
|
||||
#endif
|
||||
|
||||
m_valuemapStack.top() = m_option->base_valuemap;
|
||||
m_functionDefs = m_option->base_functions;
|
||||
|
||||
Reference in New Issue
Block a user