diff options
author | Paul Pazderski | 2019-04-25 17:46:10 +0000 |
---|---|---|
committer | Paul Pazderski | 2019-04-25 18:45:02 +0000 |
commit | 33e75e385ad0cf1f967ae7cf69c8b5cfd4adc257 (patch) | |
tree | 9c9b2c44190def2845626bc0392dd45b39f1534a | |
parent | f0cc33023dda08a2bae26b32c8e22a2863729724 (diff) | |
download | eclipse.platform.debug-33e75e385ad0cf1f967ae7cf69c8b5cfd4adc257.tar.gz eclipse.platform.debug-33e75e385ad0cf1f967ae7cf69c8b5cfd4adc257.tar.xz eclipse.platform.debug-33e75e385ad0cf1f967ae7cf69c8b5cfd4adc257.zip |
Bug 546710 - [console] Synchronize "remove all" action enable updateI20190427-1800I20190426-1800I20190425-1800
This should fix the following race condition for fast terminating
processes:
When the action is constructed it will update its enablement. The
terminated notification, which also updates enablement, can come from a
different thread.
It may happen that the initial enablement update is interrupted after
calculating the enablement state but before setting it. If then the
process terminates the action is enabled due to terminated notification
but the later resumed initial update will set it to disabled again.
Change-Id: I32eafe4676b3fbd57a997ef75c96965bb5159f2f
Signed-off-by: Paul Pazderski <paul-eclipse@ppazderski.de>
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedAction.java | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedAction.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedAction.java index 9a6a16a25..53fb177ef 100644 --- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedAction.java +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleRemoveAllTerminatedAction.java @@ -35,7 +35,7 @@ public class ConsoleRemoveAllTerminatedAction extends Action implements IUpdate, } @Override - public void update() { + public synchronized void update() { ILaunch[] launches = DebugPlugin.getDefault().getLaunchManager().getLaunches(); for (int i = 0; i < launches.length; i++) { ILaunch launch = launches[i]; |