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:
con
2010-06-08 10:39:45 +02:00
80 changed files with 2581 additions and 643 deletions

View File

@@ -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;