diff options
author | Chris Wiebe | 2005-08-11 19:33:20 +0000 |
---|---|---|
committer | Chris Wiebe | 2005-08-11 19:33:20 +0000 |
commit | d6a0d5d0d12a67b0e4a60375ca5699a571df18bd (patch) | |
tree | 31a673567ee65a260f985d35fb40f7cd256f1aa6 | |
parent | 9df072a4b2ec3024f8b03ced191aa07dcf527d7d (diff) | |
download | org.eclipse.cdt-d6a0d5d0d12a67b0e4a60375ca5699a571df18bd.tar.gz org.eclipse.cdt-d6a0d5d0d12a67b0e4a60375ca5699a571df18bd.tar.xz org.eclipse.cdt-d6a0d5d0d12a67b0e4a60375ca5699a571df18bd.zip |
2005-08-11 Chris Wiebe
Fix PRs 104907,106415: type cache always running in background
* browser/org/eclipse/cdt/core/browser/AllTypesCache.java
* browser/org/eclipse/cdt/internal/core/browser/cache/TypeCacherJob.java
3 files changed, 37 insertions, 29 deletions
diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index 4288f07c677..e639974cf6f 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,8 @@ +2005-08-11 Chris Wiebe + Fix PR 104907,106415: type cache always running in background + * browser/org/eclipse/cdt/core/browser/AllTypesCache.java + * browser/org/eclipse/cdt/internal/core/browser/cache/TypeCacherJob.java + 2005-07-26 Alain Magloire Fix PR 100992: IMethod were generated for implementation, we should generate IFunction for method defines outside of the class shell. diff --git a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/AllTypesCache.java b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/AllTypesCache.java index d16bdfbd2d1..89c047ae7d2 100644 --- a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/AllTypesCache.java +++ b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/core/browser/AllTypesCache.java @@ -68,15 +68,16 @@ public class AllTypesCache { fgTypeHierarchyBuilder = new TypeHierarchyBuilder(); // load prefs - Preferences prefs = CCorePlugin.getDefault().getPluginPreferences(); - if (prefs.contains(ENABLE_BACKGROUND_TYPE_CACHE)) { - fgEnableIndexing = prefs.getBoolean(ENABLE_BACKGROUND_TYPE_CACHE); - } else { - prefs.setDefault(ENABLE_BACKGROUND_TYPE_CACHE, true); - prefs.setValue(ENABLE_BACKGROUND_TYPE_CACHE, true); - CCorePlugin.getDefault().savePluginPreferences(); - fgEnableIndexing = true; - } +// Preferences prefs = CCorePlugin.getDefault().getPluginPreferences(); +// if (prefs.contains(ENABLE_BACKGROUND_TYPE_CACHE)) { +// fgEnableIndexing = prefs.getBoolean(ENABLE_BACKGROUND_TYPE_CACHE); +// } else { +// prefs.setDefault(ENABLE_BACKGROUND_TYPE_CACHE, false); +// prefs.setValue(ENABLE_BACKGROUND_TYPE_CACHE, false); +// CCorePlugin.getDefault().savePluginPreferences(); +// fgEnableIndexing = true; +// } + fgEnableIndexing = false; // start jobs in background after INITIAL_DELAY TypeCacheManager.getInstance().reconcile(fgEnableIndexing, Job.BUILD, INITIAL_DELAY); @@ -89,22 +90,22 @@ public class AllTypesCache { }; CoreModel.getDefault().addElementChangedListener(fgElementChangedListener); - // add property change listener - fgPropertyChangeListener = new IPropertyChangeListener() { - public void propertyChange(PropertyChangeEvent event) { - String property = event.getProperty(); - if (property.equals(ENABLE_BACKGROUND_TYPE_CACHE)) { - String value = (String) event.getNewValue(); - fgEnableIndexing = Boolean.valueOf(value).booleanValue(); - if (!fgEnableIndexing) { - TypeCacheManager.getInstance().cancelJobs(); - } else { - TypeCacheManager.getInstance().reconcile(fgEnableIndexing, Job.BUILD, 0); - } - } - } - }; - prefs.addPropertyChangeListener(fgPropertyChangeListener); +// // add property change listener +// fgPropertyChangeListener = new IPropertyChangeListener() { +// public void propertyChange(PropertyChangeEvent event) { +// String property = event.getProperty(); +// if (property.equals(ENABLE_BACKGROUND_TYPE_CACHE)) { +// String value = (String) event.getNewValue(); +// fgEnableIndexing = Boolean.valueOf(value).booleanValue(); +// if (!fgEnableIndexing) { +// TypeCacheManager.getInstance().cancelJobs(); +// } else { +// TypeCacheManager.getInstance().reconcile(fgEnableIndexing, Job.BUILD, 0); +// } +// } +// } +// }; +// prefs.addPropertyChangeListener(fgPropertyChangeListener); } /** diff --git a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeCacherJob.java b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeCacherJob.java index 416100d23d3..3cb779f2e13 100644 --- a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeCacherJob.java +++ b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeCacherJob.java @@ -119,6 +119,7 @@ public class TypeCacherJob extends BasicJob { private void flush(ITypeSearchScope scope, IProgressMonitor monitor) throws InterruptedException { // flush the cache + boolean success = true; IProject project = fTypeCache.getProject(); monitor.beginTask("", 100); //$NON-NLS-1$ @@ -126,11 +127,11 @@ public class TypeCacherJob extends BasicJob { fTypeCache.flush(scope); if (!scope.encloses(project)) { if (project.exists() && project.isOpen()) { - doIndexerJob(new IndexerDependenciesJob(fIndexManager, fTypeCache, scope), monitor); + success = doIndexerJob(new IndexerDependenciesJob(fIndexManager, fTypeCache, scope), monitor); } } - if ( monitor.isCanceled() ) { + if (!success || monitor.isCanceled()) { throw new InterruptedException(); } @@ -138,14 +139,15 @@ public class TypeCacherJob extends BasicJob { } private void update(ITypeSearchScope scope, IProgressMonitor monitor) throws InterruptedException { + boolean success = true; IProject project = fTypeCache.getProject(); monitor.beginTask("", 100); //$NON-NLS-1$ if (project.exists() && project.isOpen()) { - doIndexerJob(new IndexerTypesJob2(fIndexManager, fTypeCache, scope), monitor); + success = doIndexerJob(new IndexerTypesJob2(fIndexManager, fTypeCache, scope), monitor); } - if (monitor.isCanceled()) { + if (!success || monitor.isCanceled()) { throw new InterruptedException(); } |