src/Pure/System/isabelle_process.scala
changeset 48019 226dee06ab6e
parent 48016 edbc8e8accd9
child 48020 a4f9957878ab
equal deleted inserted replaced
48018:b941dd7df92a 48019:226dee06ab6e
   188       command_input = input_actor(command_stream)
   188       command_input = input_actor(command_stream)
   189       val message = message_actor(message_stream)
   189       val message = message_actor(message_stream)
   190 
   190 
   191       val rc = process_result.join
   191       val rc = process_result.join
   192       system_output("process terminated")
   192       system_output("process terminated")
       
   193       close_input()
   193       for ((thread, _) <- List(standard_input, stdout, stderr, command_input, message))
   194       for ((thread, _) <- List(standard_input, stdout, stderr, command_input, message))
   194         thread.join
   195         thread.join
   195       system_output("process_manager terminated")
   196       system_output("process_manager terminated")
   196       exit_message(rc)
   197       exit_message(rc)
   197     }
   198     }
   203 
   204 
   204   def join() { process_manager.join() }
   205   def join() { process_manager.join() }
   205 
   206 
   206   def terminate()
   207   def terminate()
   207   {
   208   {
   208     close()
   209     close_input()
   209     system_output("Terminating Isabelle process")
   210     system_output("Terminating Isabelle process")
   210     terminate_process()
   211     terminate_process()
   211   }
   212   }
   212 
   213 
   213 
   214 
   398   {
   399   {
   399     receiver(new Input(name, args.toList))
   400     receiver(new Input(name, args.toList))
   400     input_bytes(name, args.map(Standard_System.string_bytes): _*)
   401     input_bytes(name, args.map(Standard_System.string_bytes): _*)
   401   }
   402   }
   402 
   403 
   403   def close(): Unit = { close(command_input); close(standard_input) }
   404   def close_input(): Unit = { close(command_input); close(standard_input) }
   404 }
   405 }