diff options
author | Pawel Piech | 2012-03-29 04:49:34 +0000 |
---|---|---|
committer | Pawel Piech | 2012-03-29 04:50:59 +0000 |
commit | 839411a4f1e70c4876fe56c2481c4f5cecb50f86 (patch) | |
tree | 82c41006e7f97bd6b1c1b548de4b8c0de1d1bdbf /org.eclipse.debug.ui | |
parent | 79038a3960ccc865356a29e06c097ebfaf4c446f (diff) | |
download | eclipse.platform.debug-839411a4f1e70c4876fe56c2481c4f5cecb50f86.tar.gz eclipse.platform.debug-839411a4f1e70c4876fe56c2481c4f5cecb50f86.tar.xz eclipse.platform.debug-839411a4f1e70c4876fe56c2481c4f5cecb50f86.zip |
Bug 373790 - Debug view stays busy after Resume
Diffstat (limited to 'org.eclipse.debug.ui')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java index 08b73d12f..386fe8c38 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/viewers/model/TreeModelContentProvider.java @@ -639,13 +639,13 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon // fRequestsInProgress map. This way updateStarted() will not send a // redundant "UPDATE SEQUENCE STARTED" notification. trigger(update.getSchedulingPath()); - if (requests != null && requests.isEmpty()) { - fRequestsInProgress.remove(update.getSchedulingPath()); - } } else { // Update may be removed from in progress list if it was canceled by schedule(). Assert.isTrue( update.isCanceled() ); } + if (requests != null && requests.isEmpty()) { + fRequestsInProgress.remove(update.getSchedulingPath()); + } } if (fRequestsInProgress.isEmpty() && fWaitingRequests.isEmpty()) { if (DebugUIPlugin.DEBUG_UPDATE_SEQUENCE && DebugUIPlugin.DEBUG_TEST_PRESENTATION_ID(getPresentationContext())) { @@ -755,6 +755,8 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon * @param update the update the schedule */ private void schedule(final ViewerUpdateMonitor update) { + Assert.isTrue(getViewer().getDisplay().getThread() == Thread.currentThread()); + TreePath schedulingPath = update.getSchedulingPath(); List requests = (List) fWaitingRequests.get(schedulingPath); if (requests == null) { @@ -780,6 +782,7 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon if (inProgressList == null || inProgressList.isEmpty()) { getViewer().getDisplay().asyncExec(new Runnable() { public void run() { + if (isDisposed()) return; trigger(update.getSchedulingPath()); } }); @@ -858,6 +861,8 @@ public class TreeModelContentProvider implements ITreeModelContentProvider, ICon * be <code>null</code> to start the shortest path request. */ private void trigger(TreePath schedulingPath) { + Assert.isTrue(getViewer().getDisplay().getThread() == Thread.currentThread()); + if (fWaitingRequests.isEmpty()) { return; } |