C++: use QMutexLocker everywhere in the model manager.

Change-Id: Iab4dee2a607d453b3e80fe591b70329ab48d27a9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
Erik Verbruggen
2013-02-19 12:48:42 +01:00
committed by Erik Verbruggen
parent cd7fdf7a4a
commit b36a53cd19
2 changed files with 56 additions and 47 deletions

View File

@@ -79,6 +79,9 @@ class CPPTOOLS_EXPORT CppModelManager : public CPlusPlus::CppModelManagerInterfa
{
Q_OBJECT
public:
typedef CPlusPlus::Document Document;
public:
CppModelManager(QObject *parent = 0);
virtual ~CppModelManager();
@@ -94,6 +97,8 @@ public:
virtual QList<ProjectPart::Ptr> projectPart(const QString &fileName) const;
virtual CPlusPlus::Snapshot snapshot() const;
virtual Document::Ptr document(const QString &fileName) const;
bool replaceDocument(Document::Ptr newDoc);
virtual void GC();
virtual bool isCppEditor(Core::IEditor *editor) const;
@@ -119,8 +124,8 @@ public:
virtual void renameMacroUsages(const CPlusPlus::Macro &macro, const QString &replacement);
virtual void setExtraDiagnostics(const QString &fileName, int key,
const QList<CPlusPlus::Document::DiagnosticMessage> &diagnostics);
virtual QList<CPlusPlus::Document::DiagnosticMessage> extraDiagnostics(
const QList<Document::DiagnosticMessage> &diagnostics);
virtual QList<Document::DiagnosticMessage> extraDiagnostics(
const QString &fileName, int key = AllExtraDiagnostics) const;
void finishedRefreshingSourceFiles(const QStringList &files);
@@ -179,8 +184,9 @@ private Q_SLOTS:
void updateEditorSelections();
private:
void updateEditor(CPlusPlus::Document::Ptr doc);
void updateEditor(Document::Ptr doc);
void replaceSnapshot(const CPlusPlus::Snapshot &newSnapshot);
WorkingCopy buildWorkingCopyList();
void ensureUpdated();
@@ -213,8 +219,8 @@ private:
// project integration
QMap<ProjectExplorer::Project *, ProjectInfo> m_projects;
mutable QMutex mutex;
mutable QMutex protectSnapshot;
mutable QMutex m_mutex;
mutable QMutex m_protectSnapshot;
struct Editor {
Editor()
@@ -235,8 +241,8 @@ private:
CppFindReferences *m_findReferences;
bool m_indexerEnabled;
mutable QMutex protectExtraDiagnostics;
QHash<QString, QHash<int, QList<CPlusPlus::Document::DiagnosticMessage> > > m_extraDiagnostics;
mutable QMutex m_protectExtraDiagnostics;
QHash<QString, QHash<int, QList<Document::DiagnosticMessage> > > m_extraDiagnostics;
QMap<QString, QList<ProjectPart::Ptr> > m_srcToProjectPart;