From d09a32444ec24b7f570c6525b624bede3b160a48 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Thu, 8 Feb 2007 10:12:45 +0000 Subject: [PATCH] Fix related to 173379, acquiring write lock in indexer task. --- .../cdt/internal/core/pdom/indexer/PDOMIndexerTask.java | 6 +++--- .../core/pdom/indexer/fast/PDOMFastHandleDelta.java | 2 +- .../core/pdom/indexer/full/PDOMFullHandleDelta.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/PDOMIndexerTask.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/PDOMIndexerTask.java index 9d3549ce500..ef11e260d85 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/PDOMIndexerTask.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/PDOMIndexerTask.java @@ -171,14 +171,14 @@ public abstract class PDOMIndexerTask implements IPDOMIndexerTask { project.accept(new TranslationUnitCollector(sources, headers, allFiles)); } - protected void removeTU(IWritableIndex index, ITranslationUnit tu) throws CoreException, InterruptedException { - index.acquireWriteLock(0); + protected void removeTU(IWritableIndex index, ITranslationUnit tu, int readlocks) throws CoreException, InterruptedException { + index.acquireWriteLock(readlocks); try { IIndexFragmentFile file = (IIndexFragmentFile) index.getFile(getIndexFileLocation(tu)); if (file != null) index.clearFile(file); } finally { - index.releaseWriteLock(0); + index.releaseWriteLock(readlocks); } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastHandleDelta.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastHandleDelta.java index 7df3f50a05c..cc61aa95d7a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastHandleDelta.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/fast/PDOMFastHandleDelta.java @@ -46,7 +46,7 @@ class PDOMFastHandleDelta extends PDOMFastIndexerJob { if (monitor.isCanceled()) return; ITranslationUnit tu = (ITranslationUnit)i.next(); - removeTU(index, tu); + removeTU(index, tu, 1); if (tu.isSourceUnit()) { fCompletedSources++; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/full/PDOMFullHandleDelta.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/full/PDOMFullHandleDelta.java index 812007fa9a8..aa3a207c703 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/full/PDOMFullHandleDelta.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/full/PDOMFullHandleDelta.java @@ -61,7 +61,7 @@ class PDOMFullHandleDelta extends PDOMFullIndexerJob { if (monitor.isCanceled()) return; ITranslationUnit tu = (ITranslationUnit)i.next(); - removeTU(index, tu); + removeTU(index, tu, 0); if (tu.isSourceUnit()) { fCompletedSources++; }