src/Pure/PIDE/headless.scala
changeset 73367 77ef8bef0593
parent 73359 d8a0e996614b
child 73802 8d9ac6cfc270
equal deleted inserted replaced
73366:5f388e514ab8 73367:77ef8bef0593
   335                     val (nodes_status_changed, nodes_status1) =
   335                     val (nodes_status_changed, nodes_status1) =
   336                       st.nodes_status.update(resources, state, version,
   336                       st.nodes_status.update(resources, state, version,
   337                         domain = Some(domain), trim = changed.assignment)
   337                         domain = Some(domain), trim = changed.assignment)
   338 
   338 
   339                     if (nodes_status_delay >= Time.zero && nodes_status_changed) {
   339                     if (nodes_status_delay >= Time.zero && nodes_status_changed) {
   340                       delay_nodes_status.invoke
   340                       delay_nodes_status.invoke()
   341                     }
   341                     }
   342 
   342 
   343                     val theory_progress =
   343                     val theory_progress =
   344                       (for {
   344                       (for {
   345                         (name, node_status) <- nodes_status1.present.iterator
   345                         (name, node_status) <- nodes_status1.present.iterator
   355 
   355 
   356               check_state()
   356               check_state()
   357 
   357 
   358               if (commit.isDefined && commit_cleanup_delay > Time.zero) {
   358               if (commit.isDefined && commit_cleanup_delay > Time.zero) {
   359                 if (use_theories_state.value.finished_result)
   359                 if (use_theories_state.value.finished_result)
   360                   delay_commit_clean.revoke
   360                   delay_commit_clean.revoke()
   361                 else delay_commit_clean.invoke
   361                 else delay_commit_clean.invoke()
   362               }
   362               }
   363             }
   363             }
   364         }
   364         }
   365       }
   365       }
   366 
   366 
   367       try {
   367       try {
   368         session.commands_changed += consumer
   368         session.commands_changed += consumer
   369         check_state()
   369         check_state()
   370         use_theories_state.guarded_access(_.join_result)
   370         use_theories_state.guarded_access(_.join_result)
   371         check_progress.cancel
   371         check_progress.cancel()
   372       }
   372       }
   373       finally {
   373       finally {
   374         session.commands_changed -= consumer
   374         session.commands_changed -= consumer
   375         resources.unload_theories(session, id, dep_theories)
   375         resources.unload_theories(session, id, dep_theories)
   376       }
   376       }
   573     {
   573     {
   574       val session = new Session(session_base_info.session, options, resources)
   574       val session = new Session(session_base_info.session, options, resources)
   575 
   575 
   576       progress.echo("Starting session " + session_base_info.session + " ...")
   576       progress.echo("Starting session " + session_base_info.session + " ...")
   577       Isabelle_Process(session, options, session_base_info.sessions_structure, store,
   577       Isabelle_Process(session, options, session_base_info.sessions_structure, store,
   578         logic = session_base_info.session, modes = print_mode).await_startup
   578         logic = session_base_info.session, modes = print_mode).await_startup()
   579 
   579 
   580       session
   580       session
   581     }
   581     }
   582 
   582 
   583 
   583