recovered basic session stop/restart;
authorwenzelm
Sat, 18 Sep 2010 21:33:56 +0200
changeset 39524 59ebce09ce6e
parent 39523 d8971680b0fc
child 39525 72e949a0425b
recovered basic session stop/restart;
src/Pure/System/isabelle_process.scala
src/Pure/System/session.scala
--- a/src/Pure/System/isabelle_process.scala	Sat Sep 18 21:10:07 2010 +0200
+++ b/src/Pure/System/isabelle_process.scala	Sat Sep 18 21:33:56 2010 +0200
@@ -163,7 +163,6 @@
           //{{{
           receive {
             case Input_Text(text) =>
-              // FIXME echo input?!
               writer.write(text)
               writer.flush
             case Close =>
@@ -365,5 +364,5 @@
   def input(name: String, args: String*): Unit =
     input_bytes(name, args.map(Standard_System.string_bytes): _*)
 
-  def close(): Unit = command_input ! Close
+  def close(): Unit = { standard_input ! Close; command_input ! Close }
 }
--- a/src/Pure/System/session.scala	Sat Sep 18 21:10:07 2010 +0200
+++ b/src/Pure/System/session.scala	Sat Sep 18 21:33:56 2010 +0200
@@ -247,7 +247,7 @@
     }
 
 
-    /* main loop */
+    /* main loop */  // FIXME proper shutdown
 
     var finished = false
     while (!finished) {
@@ -282,9 +282,9 @@
 
         case Stop => // FIXME synchronous!?
           if (prover != null) {
+            global_state.change(_ => Document.State.init)
             prover.kill
             prover = null
-            finished = true
           }
 
         case TIMEOUT =>  // FIXME clarify