src/Pure/Tools/isabelle_process.scala
changeset 29194 53930d089f88
parent 29192 082ee2a01a6d
child 29196 de62fdd4b432
equal deleted inserted replaced
29193:4410739f97a6 29194:53930d089f88
    81 
    81 
    82 class IsabelleProcess(isabelle_system: IsabelleSystem,
    82 class IsabelleProcess(isabelle_system: IsabelleSystem,
    83   results: EventBus[IsabelleProcess.Result], args: String*)
    83   results: EventBus[IsabelleProcess.Result], args: String*)
    84 {
    84 {
    85   import IsabelleProcess._
    85   import IsabelleProcess._
    86   
    86 
    87 
    87 
    88   /* demo constructor */
    88   /* demo constructor */
    89 
    89 
    90   def this(args: String*) =
    90   def this(args: String*) =
    91     this(new IsabelleSystem, new EventBus[IsabelleProcess.Result] + (Console.println(_)), args: _*)
    91     this(new IsabelleSystem, new EventBus[IsabelleProcess.Result] + (Console.println(_)), args: _*)
   357       if (rc != 0) error("Version check failed -- bad Isabelle installation:\n" + msg)
   357       if (rc != 0) error("Version check failed -- bad Isabelle installation:\n" + msg)
   358       put_result(Kind.SYSTEM, null, msg)
   358       put_result(Kind.SYSTEM, null, msg)
   359     }
   359     }
   360 
   360 
   361 
   361 
   362     /* results */
       
   363 
       
   364     val result_thread = new ResultThread
       
   365     result_thread.start
       
   366     
       
   367 
       
   368     /* messages */
   362     /* messages */
   369 
   363 
   370     val message_fifo = isabelle_system.mk_fifo()
   364     val message_fifo = isabelle_system.mk_fifo()
   371     def rm_fifo() = isabelle_system.rm_fifo(message_fifo)
   365     def rm_fifo() = isabelle_system.rm_fifo(message_fifo)
   372 
   366 
   373     val message_thread = new MessageThread(message_fifo)
   367     val message_thread = new MessageThread(message_fifo)
   374     message_thread.start
   368     message_thread.start
       
   369 
       
   370     new ResultThread().start
   375 
   371 
   376 
   372 
   377     /* exec process */
   373     /* exec process */
   378 
   374 
   379     try {
   375     try {