diff options
author | Andrew Ferrazzutti | 2014-08-06 20:39:29 +0000 |
---|---|---|
committer | Alexander Kurtakov | 2014-09-09 18:40:47 +0000 |
commit | 6660c859649c684aa598bc46604d94672bf8776b (patch) | |
tree | 200842b951f966bcd498c2d58daf6e6c28d338e5 /systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures | |
parent | 916878e3fc36309dbc3c894ad9d094c7772742b7 (diff) | |
download | org.eclipse.linuxtools-6660c859649c684aa598bc46604d94672bf8776b.tar.gz org.eclipse.linuxtools-6660c859649c684aa598bc46604d94672bf8776b.tar.xz org.eclipse.linuxtools-6660c859649c684aa598bc46604d94672bf8776b.zip |
Systemtap: Improve BrowserView UI loading.
Remove a number of race conditions that caused errors in the
contents of BrowserViews (Function view, Probe Alias view).
Also ensure that parser processes are terminated once they
are cancelled, and make some other minor UI and logic adjustments.
Change-Id: I4b65c5a7dd9622db5a10dc3822f0ea2fdec430bb
Signed-off-by: Andrew Ferrazzutti <aferrazz@redhat.com>
Reviewed-on: https://git.eclipse.org/r/31139
Tested-by: Hudson CI
Reviewed-by: Alexander Kurtakov <akurtako@redhat.com>
Tested-by: Alexander Kurtakov <akurtako@redhat.com>
Diffstat (limited to 'systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures')
2 files changed, 7 insertions, 2 deletions
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/ProbeParser.java b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/ProbeParser.java index d2ab9fc06f..3bf8c17681 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/ProbeParser.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/ProbeParser.java @@ -141,7 +141,7 @@ public final class ProbeParser extends TreeTapsetParser { TreeNode groupNode = null; while (st.hasNextLine()) { if (monitor.isCanceled()) { - canceled = false; + canceled = true; break; } String tokenString = st.nextLine(); diff --git a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/TapsetParser.java b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/TapsetParser.java index efdfb9a31b..29574fab3c 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/TapsetParser.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/TapsetParser.java @@ -63,7 +63,10 @@ public abstract class TapsetParser extends Job { @Override protected void canceling() { - getThread().interrupt(); + Thread thread = getThread(); + if (thread != null) { + thread.interrupt(); + } } /** @@ -202,6 +205,8 @@ public abstract class TapsetParser extends Job { port, EnvironmentVariablesPreferencePage.getEnvironmentVariables()); if (channel == null) { displayError(Messages.TapsetParser_CannotRunStapTitle, Messages.TapsetParser_CannotRunStapMessage); + } else { + channel.getSession().disconnect(); } return (!getErrors ? str : strErr).toString(); |