diff options
author | eutarass | 2009-04-13 18:00:32 +0000 |
---|---|---|
committer | eutarass | 2009-04-13 18:00:32 +0000 |
commit | 9589911df34adc93433ac83af96e5bcc9f9d89b6 (patch) | |
tree | e74c2e8751baabe66dfeaa2acf6234b211fb536d /plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java | |
parent | 44babd128cf9813ab42cf32dea66a7beadb94e8e (diff) | |
download | org.eclipse.tcf-9589911df34adc93433ac83af96e5bcc9f9d89b6.tar.gz org.eclipse.tcf-9589911df34adc93433ac83af96e5bcc9f9d89b6.tar.xz org.eclipse.tcf-9589911df34adc93433ac83af96e5bcc9f9d89b6.zip |
TCF Debugger: fixed a racing condition during initialization.
Diffstat (limited to 'plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java')
-rw-r--r-- | plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java b/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java index 0c0f94325..9190c1de2 100644 --- a/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java +++ b/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java @@ -52,6 +52,8 @@ import org.eclipse.tm.tcf.services.IProcesses.ProcessContext; public class TCFLaunch extends Launch { public interface Listener { + + public void onCreated(TCFLaunch launch); public void onConnected(TCFLaunch launch); @@ -100,6 +102,7 @@ public class TCFLaunch extends Launch { public TCFLaunch(ILaunchConfiguration launchConfiguration, String mode) { super(launchConfiguration, mode, null); + for (Listener l : listeners) l.onCreated(TCFLaunch.this); } private void onConnected() { @@ -118,7 +121,7 @@ public class TCFLaunch extends Launch { for (Iterator<Listener> i = listeners.iterator(); i.hasNext();) { i.next().onDisconnected(this); } - fireChanged(); + if (DebugPlugin.getDefault() != null) fireChanged(); runShutdownSequence(new Runnable() { public void run() { shutdown = true; @@ -429,6 +432,7 @@ public class TCFLaunch extends Launch { } private void disconnectStream(String id) { + if (channel.getState() != IChannel.STATE_OPEN) return; IStreams streams = getService(IStreams.class); streams.disconnect(id, new IStreams.DoneDisconnect() { public void doneDisconnect(IToken token, Exception error) { |