src/Pure/Tools/build.scala
changeset 71607 d97f504c8145
parent 71604 c6fa217c9d5e
child 71610 5730eb952208
equal deleted inserted replaced
71606:b3b0d87edd20 71607:d97f504c8145
   246           val resources = new Resources(sessions_structure, deps(parent))
   246           val resources = new Resources(sessions_structure, deps(parent))
   247           val session = new Session(options, resources)
   247           val session = new Session(options, resources)
   248           val handler = new Handler(progress, session, name)
   248           val handler = new Handler(progress, session, name)
   249           session.init_protocol_handler(handler)
   249           session.init_protocol_handler(handler)
   250 
   250 
   251           val session_result = Future.promise[Process_Result]
   251           val process =
   252           session.phase_changed += Session.Consumer("build_session")
   252             Isabelle_Process(session, options, sessions_structure, store,
   253           {
   253               logic = parent, cwd = info.dir.file, env = env).await_startup
   254             case Session.Ready => session.protocol_command("build_session", args_yxml)
   254 
   255             case Session.Terminated(result) => session_result.fulfill(result)
   255           session.protocol_command("build_session", args_yxml)
   256             case _ =>
   256 
   257           }
   257           val result = process.join
   258           Isabelle_Process(session, options, sessions_structure, store,
       
   259             logic = parent, cwd = info.dir.file, env = env)
       
   260 
       
   261           val result = session_result.join
       
   262           handler.result_error.join match {
   258           handler.result_error.join match {
   263             case "" => result
   259             case "" => result
   264             case msg =>
   260             case msg =>
   265               result.copy(
   261               result.copy(
   266                 rc = result.rc max 1,
   262                 rc = result.rc max 1,