src/Pure/System/isabelle_process.scala
changeset 45158 db4bf4fb5492
parent 45075 6c66e268f8eb
child 45633 2cb7e34f6096
equal deleted inserted replaced
45157:efc2e2d80218 45158:db4bf4fb5492
    75 }
    75 }
    76 
    76 
    77 
    77 
    78 class Isabelle_Process(
    78 class Isabelle_Process(
    79     timeout: Time = Time.seconds(25),
    79     timeout: Time = Time.seconds(25),
    80     use_socket: Boolean = false,
       
    81     receiver: Isabelle_Process.Message => Unit = Console.println(_),
    80     receiver: Isabelle_Process.Message => Unit = Console.println(_),
    82     args: List[String] = Nil)
    81     args: List[String] = Nil)
    83 {
    82 {
    84   import Isabelle_Process._
    83   import Isabelle_Process._
    85 
    84 
   128   @volatile private var command_input: (Thread, Actor) = null
   127   @volatile private var command_input: (Thread, Actor) = null
   129 
   128 
   130 
   129 
   131   /** process manager **/
   130   /** process manager **/
   132 
   131 
   133   private val system_channel = System_Channel(use_socket)
   132   private val system_channel = System_Channel()
   134 
   133 
   135   private val process =
   134   private val process =
   136     try {
   135     try {
   137       val cmdline =
   136       val cmdline =
   138         Isabelle_System.getenv_strict("ISABELLE_PROCESS") ::
   137         Isabelle_System.getenv_strict("ISABELLE_PROCESS") ::