Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreutarass2009-04-13 18:00:32 +0000
committereutarass2009-04-13 18:00:32 +0000
commit9589911df34adc93433ac83af96e5bcc9f9d89b6 (patch)
treee74c2e8751baabe66dfeaa2acf6234b211fb536d /plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java
parent44babd128cf9813ab42cf32dea66a7beadb94e8e (diff)
downloadorg.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.java6
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) {

Back to the top