diff options
Diffstat (limited to 'systemtap')
2 files changed, 23 insertions, 17 deletions
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/IDEPlugin.java b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/IDEPlugin.java index bf9eeea4c0..6510dfd054 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/IDEPlugin.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/IDEPlugin.java @@ -55,6 +55,7 @@ public class IDEPlugin extends AbstractUIPlugin { workbenchListener = new IDECloseMonitor(); plugin.getWorkbench().addWorkbenchListener(workbenchListener); + TapsetLibrary.init(); } /** diff --git a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/TapsetLibrary.java b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/TapsetLibrary.java index 833722a394..8cdcc4c87e 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/TapsetLibrary.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/structures/TapsetLibrary.java @@ -50,6 +50,8 @@ public final class TapsetLibrary { private static final IUpdateListener functionCompletionListener = new ParseCompletionListener(functionParser); private static final IUpdateListener probeCompletionListener = new ParseCompletionListener(probeParser); + private static boolean initialized = false; + public static TreeNode getProbes() { return probeTree; } @@ -139,19 +141,26 @@ public final class TapsetLibrary { return documentation; } - private static void init() { - IPreferenceStore preferenceStore = IDEPlugin.getDefault().getPreferenceStore(); - preferenceStore.addPropertyChangeListener(propertyChangeListener); - ConsoleLogPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(credentialChangeListener); - - functionParser.addListener(functionCompletionListener); - probeParser.addListener(probeCompletionListener); - - if (preferenceStore.getBoolean(IDEPreferenceConstants.P_STORED_TREE) - && isTreeFileCurrent()) { - readTreeFile(); - } else { - runStapParser(); + /** + * Initialize all listeners associated with loading tapset contents, and perform + * the first tapset load operation. Note that subsequent calls to this method will have no effect. + */ + public synchronized static void init() { + if (!initialized) { + initialized = true; + IPreferenceStore preferenceStore = IDEPlugin.getDefault().getPreferenceStore(); + preferenceStore.addPropertyChangeListener(propertyChangeListener); + ConsoleLogPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(credentialChangeListener); + + functionParser.addListener(functionCompletionListener); + probeParser.addListener(probeCompletionListener); + + if (preferenceStore.getBoolean(IDEPreferenceConstants.P_STORED_TREE) + && isTreeFileCurrent()) { + readTreeFile(); + } else { + runStapParser(); + } } } @@ -448,8 +457,4 @@ public final class TapsetLibrary { cacheProbeManpages.join(); } catch (InterruptedException e) {} } - - static { - init(); - } } |