Bug 576736 - avoid running jobs if not needed
Change-Id: Ic2ec59af05281ca4acc046e3e48d74d1069ba514
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
Reviewed-on: https://git.eclipse.org/r/c/pde/eclipse.pde.ui/+/189674
Tested-by: PDE Bot <pde-bot@eclipse.org>
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder.java
index 24c70cc..6c9fcef 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder.java
@@ -198,8 +198,7 @@
*/
void cleanupMarkers(IResource resource) {
if (isRunningAsJob()) {
- ApiAnalysisMarkersJob job = new ApiAnalysisMarkersJob(() -> cleanupMarkersInternally(resource));
- job.schedule();
+ new ApiAnalysisMarkersJob(() -> cleanupMarkersInternally(resource)).schedule();
} else {
cleanupMarkersInternally(resource);
}
@@ -953,6 +952,16 @@
}
@Override
+ public boolean shouldRun() {
+ return !markersQueue.isEmpty();
+ }
+
+ @Override
+ public boolean shouldSchedule() {
+ return !markersQueue.isEmpty();
+ }
+
+ @Override
public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
while (!markersQueue.isEmpty()) {
Runnable task = markersQueue.poll();