From c91c41e2a20c5fe00a1d03616a457fcf362deff4 Mon Sep 17 00:00:00 2001 From: benfry Date: Wed, 12 Mar 2008 07:20:22 +0000 Subject: [PATCH] stop button working to initiate stops --- app/src/processing/app/Editor.java | 18 +++++----- app/src/processing/app/debug/Runner.java | 45 +++++++++++++----------- 2 files changed, 35 insertions(+), 28 deletions(-) diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 5cf68db7d..91c414ab4 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -1111,14 +1111,15 @@ public class Editor extends JFrame { if (!sketch.handleCompile()) return; //SwingUtilities.invokeLater(new Runnable() { + runtime = new Runner(Editor.this, presenting); Thread t = new Thread(new Runnable() { public void run() { - try { - runtime = new Runner(Editor.this, presenting); +// try { + runtime.poo(); //runtime.go(); - } catch (RunnerException e) { - error(e); - } +// } catch (RunnerException e) { +// error(e); +// } } }); t.start(); @@ -1129,7 +1130,7 @@ public class Editor extends JFrame { //watcher = new RunButtonWatcher(); } catch (Exception e) { - System.err.println("exception reached editor"); +// System.err.println("exception reached editor"); e.printStackTrace(); } @@ -1237,7 +1238,7 @@ public class Editor extends JFrame { * Stop the applet but don't kill its window. */ public void stopRunner() { - //System.out.println("stopRunner 1"); +// System.out.println("stopRunner " + runtime); if (runtime != null) runtime.stop(); //System.out.println("stopRunner 2"); //if (watcher != null) watcher.stop(); @@ -1256,7 +1257,7 @@ public class Editor extends JFrame { * mode, this will always be called instead of doStop(). */ public void closeRunner() { - //System.out.println("closing runner"); +// System.out.println("closing runner"); //if (presenting) { //presentationWindow.hide(); @@ -1277,6 +1278,7 @@ public class Editor extends JFrame { try { if (runtime != null) { +// System.out.println("runtime closing"); runtime.close(); // kills the window runtime = null; // will this help? } diff --git a/app/src/processing/app/debug/Runner.java b/app/src/processing/app/debug/Runner.java index 59483e9b1..b27b8a19f 100644 --- a/app/src/processing/app/debug/Runner.java +++ b/app/src/processing/app/debug/Runner.java @@ -92,12 +92,11 @@ public class Runner implements MessageConsumer { public Runner(Editor editor, boolean presenting) throws RunnerException { this.editor = editor; this.sketch = editor.sketch; - this.presenting = presenting; - -// } -// -// -// public void go2() { + this.presenting = presenting; + } + + + public void poo() { // this as prefix made the code folder bug go away, but killed stdio //"cmd", "/c", "start", @@ -121,13 +120,14 @@ public class Runner implements MessageConsumer { vm = launch(vmParamList, appletParamList); // PrintWriter writer = new PrintWriter(System.out); - PrintWriter writer = null; - try { - writer = new PrintWriter(new FileWriter("/Users/fry/Desktop/runner.txt")); - } catch (IOException e) { - e.printStackTrace(); - } - generateTrace(writer); +// PrintWriter writer = null; +// try { +// writer = new PrintWriter(new FileWriter("/Users/fry/Desktop/runner.txt")); +// } catch (IOException e) { +// e.printStackTrace(); +// } + //generateTrace(writer); + generateTrace(null); // String[] guiParams = PApplet.concat(vmParamList, appletParamList); // for (int i = 0; i < guiParams.length; i++) { @@ -342,21 +342,26 @@ public class Runner implements MessageConsumer { */ void generateTrace(PrintWriter writer) { vm.setDebugTraceMode(debugTraceMode); - EventThread eventThread = new EventThread(vm, excludes, writer); - eventThread.setEventRequests(watchFields); - eventThread.start(); + + EventThread eventThread = null; + if (writer != null) { + eventThread = new EventThread(vm, excludes, writer); + eventThread.setEventRequests(watchFields); + eventThread.start(); + } + redirectOutput(); vm.resume(); // Shutdown begins when event thread terminates try { - eventThread.join(); + if (eventThread != null) eventThread.join(); errThread.join(); // Make sure output is forwarded outThread.join(); // before we exit } catch (InterruptedException exc) { // we don't interrupt } - writer.close(); + if (writer != null) writer.close(); } @@ -714,7 +719,7 @@ public class Runner implements MessageConsumer { public void stop() { - System.out.println("external stop not implemented"); + //System.out.println("external stop not implemented"); close(); //EventQueue eq = vm.eventQueue(); @@ -780,7 +785,7 @@ public class Runner implements MessageConsumer { } catch (com.sun.jdi.VMDisconnectedException vmde) { // if the vm has disconnected on its own, ignore message - System.out.println("harmless disconnect " + vmde.getMessage()); + //System.out.println("harmless disconnect " + vmde.getMessage()); // TODO shouldn't need to do this, need to do more cleanup } vm = null;