From 62212fa6ac56dfb226e67850ed938e1b9411efc7 Mon Sep 17 00:00:00 2001 From: James Blackburn Date: Tue, 13 Oct 2009 15:59:42 +0000 Subject: [PATCH] [Performance] Setting TODO markers should be run in a WorkspaceJob rather than a Job to limit the number of resource change notifications fired by the platform. --- .../internal/core/pdom/indexer/TodoTaskUpdater.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/TodoTaskUpdater.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/TodoTaskUpdater.java index 99f11787a0e..4a834ff0e39 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/TodoTaskUpdater.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/indexer/TodoTaskUpdater.java @@ -34,6 +34,7 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.resources.WorkspaceJob; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; @@ -41,7 +42,6 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.MultiStatus; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; import org.eclipse.core.runtime.jobs.MultiRule; import org.eclipse.osgi.util.NLS; @@ -138,9 +138,9 @@ public class TodoTaskUpdater implements ITodoTaskUpdater { // run this in a job in order not to block the indexer (bug 210730). if (!pathToTaskList.isEmpty()) { - Job job= new Job(Messages.TodoTaskUpdater_UpdateJob) { + WorkspaceJob job= new WorkspaceJob(Messages.TodoTaskUpdater_UpdateJob) { @Override - protected IStatus run(IProgressMonitor monitor) { + public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException { MultiStatus status= new MultiStatus(CCorePlugin.PLUGIN_ID, 0, Messages.TodoTaskUpdater_UpdateJob, null); @@ -203,9 +203,9 @@ public class TodoTaskUpdater implements ITodoTaskUpdater { } // run this in a job in order not to block the indexer (bug 210730). - Job job= new Job(Messages.TodoTaskUpdater_DeleteJob) { + WorkspaceJob job= new WorkspaceJob(Messages.TodoTaskUpdater_DeleteJob) { @Override - protected IStatus run(IProgressMonitor monitor) { + public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException { try { if (!resource.exists()) { return Status.CANCEL_STATUS;