Added code change that will leave the debug session running even after the script...
[phpeclipse.git] / net.sourceforge.phpeclipse.debug.core / src / net / sourceforge / phpdt / internal / debug / core / model / PHPDebugTarget.java
index afce149..660623d 100644 (file)
@@ -106,6 +106,11 @@ public class PHPDebugTarget extends PHPDebugElement implements IPHPDebugTarget,
                fireChangeEvent();
                fireThreadCreateEvent(phpThread);
        }
+       
+       public void updateThreads(PHPThread phpThread) {
+               fireChangeEvent();
+               fireThreadCreateEvent(phpThread);
+       }
 
        private void fireChangeEvent() {
                DebugEvent ev = new DebugEvent(this, DebugEvent.CHANGE);
@@ -168,6 +173,17 @@ public class PHPDebugTarget extends PHPDebugElement implements IPHPDebugTarget,
        public synchronized boolean isTerminated() {
                return state.isTerminated();
        }
+       
+       private synchronized void terminateThreads () {
+               int i;
+               
+               try {
+                       for (i = 0; i < threads.length; i++) {
+                               threads[i].terminate ();
+                       }
+               } catch (DebugException e) {
+               }
+       }
 
        public synchronized void terminate() {
                // This method is synchronized to control a race condition between the
@@ -178,6 +194,7 @@ public class PHPDebugTarget extends PHPDebugElement implements IPHPDebugTarget,
                        return;
                state.setTerminated(true);
                phpDBGProxy.stop();
+               terminateThreads ();
                this.threads = new PHPThread[0];
                fireChangeEvent();
                IBreakpointManager manager = DebugPlugin.getDefault()