From 1d294c4344b657111382af6995d0eb86b6d7c370 Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Sat, 5 Oct 2002 19:49:21 +0000 Subject: [PATCH] The exit value is save in case the gdb was terminated before the value was fetch. setTerminated(boolean) only fire an event when destroy is called. --- .../org/eclipse/cdt/debug/mi/core/MIInferior.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java index 3072d8027ad..742cf54e2f8 100644 --- a/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java +++ b/debug/org.eclipse.cdt.debug.mi.core/src/org/eclipse/cdt/debug/mi/core/MIInferior.java @@ -32,6 +32,7 @@ public class MIInferior extends Process { boolean attached = false; + int exitCode = 0; int state = 0; MISession session; @@ -139,12 +140,12 @@ public class MIInferior extends Process { try { session.postCommand(code); MIGDBShowExitCodeInfo info = code.getMIGDBShowExitCodeInfo(); - return info.getCode(); + exitCode = info.getCode(); } catch (MIException e) { // no rethrown. } } - return 0; + return exitCode; } throw new IllegalThreadStateException(); } @@ -161,7 +162,7 @@ public class MIInferior extends Process { interrupt(); session.postCommand(abort); MIInfo info = abort.getMIInfo(); - setTerminated(); + setTerminated(true); } catch (MIException e) { } } @@ -219,6 +220,10 @@ public class MIInferior extends Process { } public synchronized void setTerminated() { + setTerminated(false); + } + + synchronized void setTerminated(boolean fireEvent) { state = TERMINATED; // Close the streams. try { @@ -258,7 +263,9 @@ public class MIInferior extends Process { out = null; } } - session.fireEvent(new MIInferiorExitEvent()); + if (fireEvent) { + session.fireEvent(new MIInferiorExitEvent()); + } notifyAll(); }