external_prover: "exec" the command line, in order to preserve the exact process context of the "system" invocation (this recovers interruptibility of E-1.0, which assumes to be the process group leader);
authorwenzelm
Thu, 16 Apr 2009 14:54:57 +0200
changeset 30899 d394a17d4fdb
parent 30898 16912b4e6625
child 30900 b367e75a094c
child 30901 9343d4b7c5bf
external_prover: "exec" the command line, in order to preserve the exact process context of the "system" invocation (this recovers interruptibility of E-1.0, which assumes to be the process group leader);
src/HOL/Tools/atp_wrapper.ML
--- a/src/HOL/Tools/atp_wrapper.ML	Wed Apr 15 20:03:08 2009 +0200
+++ b/src/HOL/Tools/atp_wrapper.ML	Thu Apr 16 14:54:57 2009 +0200
@@ -68,7 +68,7 @@
     val fname = File.platform_path probfile
     val thm_names = write_problem_file probfile th subgoalno axiom_clauses thy
     val cmdline =
-      if File.exists cmd then File.shell_path cmd ^ " " ^ args
+      if File.exists cmd then "exec " ^ File.shell_path cmd ^ " " ^ args
       else error ("Bad executable: " ^ Path.implode cmd)
     val (proof, rc) = system_out (cmdline ^ " " ^ fname)