have kill_all also kill MaSh server + be paranoid about reloading after clear_state, to allow for easier experimentation
authorblanchet
Thu, 22 Aug 2013 16:03:13 +0200
changeset 54279966a251efd16
parent 54278 d27e99a6a679
child 54280 ba80154a1118
have kill_all also kill MaSh server + be paranoid about reloading after clear_state, to allow for easier experimentation
src/HOL/Tools/Sledgehammer/sledgehammer_isar.ML
src/HOL/Tools/Sledgehammer/sledgehammer_mash.ML
     1.1 --- a/src/HOL/Tools/Sledgehammer/sledgehammer_isar.ML	Thu Aug 22 12:16:56 2013 +0200
     1.2 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_isar.ML	Thu Aug 22 16:03:13 2013 +0200
     1.3 @@ -404,7 +404,7 @@
     1.4      else if subcommand = supported_proversN then
     1.5        supported_provers ctxt
     1.6      else if subcommand = kill_allN then
     1.7 -      (kill_provers (); kill_learners ())
     1.8 +      (kill_provers (); kill_learners ctxt)
     1.9      else if subcommand = running_proversN then
    1.10        running_provers ()
    1.11      else if subcommand = unlearnN then
     2.1 --- a/src/HOL/Tools/Sledgehammer/sledgehammer_mash.ML	Thu Aug 22 12:16:56 2013 +0200
     2.2 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_mash.ML	Thu Aug 22 16:03:13 2013 +0200
     2.3 @@ -97,7 +97,7 @@
     2.4    val relevant_facts :
     2.5      Proof.context -> params -> string -> int -> fact_override -> term list
     2.6      -> term -> raw_fact list -> (string * fact list) list
     2.7 -  val kill_learners : unit -> unit
     2.8 +  val kill_learners : Proof.context -> unit
     2.9    val running_learners : unit -> unit
    2.10  end;
    2.11  
    2.12 @@ -253,10 +253,13 @@
    2.13  structure MaSh =
    2.14  struct
    2.15  
    2.16 +fun shutdown ctxt =
    2.17 +  run_mash_tool ctxt false [shutdown_server_arg] ([], K "") (K ())
    2.18 +
    2.19  fun unlearn ctxt =
    2.20    let val path = mash_model_dir () in
    2.21      trace_msg ctxt (K "MaSh unlearn");
    2.22 -    run_mash_tool ctxt false [shutdown_server_arg] ([], K "") (K ());
    2.23 +    shutdown ctxt;
    2.24      try (File.fold_dir (fn file => fn _ =>
    2.25                             try File.rm (Path.append path (Path.basic file)))
    2.26                         path) NONE;
    2.27 @@ -431,7 +434,7 @@
    2.28  fun clear_state ctxt =
    2.29    Synchronized.change global_state (fn _ =>
    2.30        (MaSh.unlearn ctxt; (* also removes the state file *)
    2.31 -       (true, empty_state)))
    2.32 +       (false, empty_state)))
    2.33  
    2.34  end
    2.35  
    2.36 @@ -1332,7 +1335,8 @@
    2.37        | _ => [("", mesh)]
    2.38      end
    2.39  
    2.40 -fun kill_learners () = Async_Manager.kill_threads MaShN "learner"
    2.41 +fun kill_learners ctxt =
    2.42 +  (Async_Manager.kill_threads MaShN "learner"; MaSh.shutdown ctxt)
    2.43  fun running_learners () = Async_Manager.running_threads MaShN "learner"
    2.44  
    2.45  end;