Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Keller2015-11-18 16:14:19 +0000
committerMarkus Keller2015-11-20 13:43:36 +0000
commit5987551acfa800096c0d908175e5a813abced853 (patch)
treef74ac71260a887cc5f40ab966c6c0db42d91f883
parentebcf884f9501466c499fb8d8b083dcd7b5ae105f (diff)
downloadeclipse.platform.ui-5987551acfa800096c0d908175e5a813abced853.tar.gz
eclipse.platform.ui-5987551acfa800096c0d908175e5a813abced853.tar.xz
eclipse.platform.ui-5987551acfa800096c0d908175e5a813abced853.zip
Bug 480076: Excessive threads created (more than 30,000) for some tests, on some machines
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/activities/MutableActivityManager.java29
1 files changed, 15 insertions, 14 deletions
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/activities/MutableActivityManager.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/activities/MutableActivityManager.java
index d83d7b306ef..57d63274734 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/activities/MutableActivityManager.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/activities/MutableActivityManager.java
@@ -928,9 +928,11 @@ public final class MutableActivityManager extends AbstractActivityManager
*/
private Job getUpdateJob() {
if (deferredIdentifierJob == null) {
- deferredIdentifierJob = Job.create("Identifier Update Job", new IJobFunction() { //$NON-NLS-1$
+ deferredIdentifierJob = Job.create("Activity Identifier Update", new IJobFunction() { //$NON-NLS-1$
@Override
public IStatus run(IProgressMonitor monitor) {
+ final Map identifierEventsByIdentifierId = new HashMap();
+
while (!deferredIdentifiers.isEmpty()) {
Identifier identifier = (Identifier) deferredIdentifiers.remove(0);
Set activityIds = new HashSet();
@@ -948,21 +950,20 @@ public final class MutableActivityManager extends AbstractActivityManager
if (activityIdsChanged) {
IdentifierEvent identifierEvent = new IdentifierEvent(identifier, activityIdsChanged,
false);
- final Map identifierEventsByIdentifierId = new HashMap(1);
identifierEventsByIdentifierId.put(identifier.getId(),
identifierEvent);
- UIJob notifyJob = new UIJob("Identifier Update Job") { //$NON-NLS-1$
-
- @Override
- public IStatus runInUIThread(
- IProgressMonitor monitor) {
- notifyIdentifiers(identifierEventsByIdentifierId);
- return Status.OK_STATUS;
- }
- };
- notifyJob.setSystem(true);
- notifyJob.schedule();
- }
+ }
+ }
+ if (!identifierEventsByIdentifierId.isEmpty()) {
+ UIJob notifyJob = new UIJob("Activity Identifier Update UI") { //$NON-NLS-1$
+ @Override
+ public IStatus runInUIThread(IProgressMonitor monitor) {
+ notifyIdentifiers(identifierEventsByIdentifierId);
+ return Status.OK_STATUS;
+ }
+ };
+ notifyJob.setSystem(true);
+ notifyJob.schedule();
}
return Status.OK_STATUS;
}

Back to the top