1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-28 03:15:33 +02:00

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
This commit is contained in:
Chris Wiebe 2005-08-11 19:33:20 +00:00
parent 9df072a4b2
commit d6a0d5d0d1
3 changed files with 37 additions and 29 deletions

View file

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

View file

@ -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);
}
/**

View file

@ -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();
}