more informative timeout message, notably for build_status;
authorwenzelm
Mon, 30 Oct 2017 19:19:24 +0100
changeset 66944 05df740cb54b
parent 66943 351aaaa9bacd
child 66945 b6f787a17fbe
more informative timeout message, notably for build_status;
src/Pure/Admin/build_log.scala
src/Pure/Tools/build.scala
--- a/src/Pure/Admin/build_log.scala	Mon Oct 30 18:39:30 2017 +0100
+++ b/src/Pure/Admin/build_log.scala	Mon Oct 30 19:19:24 2017 +0100
@@ -649,6 +649,10 @@
     ml_statistics: List[Properties.T],
     task_statistics: List[Properties.T],
     errors: List[String])
+  {
+    def error(s: String): Session_Info =
+      copy(errors = errors ::: List(s))
+  }
 
   private def parse_session_info(
     log_file: Log_File,
--- a/src/Pure/Tools/build.scala	Mon Oct 30 18:39:30 2017 +0100
+++ b/src/Pure/Tools/build.scala	Mon Oct 30 19:19:24 2017 +0100
@@ -536,15 +536,18 @@
               val database = store.output_dir + store.database(name)
               database.file.delete
 
+              val build_log =
+                Build_Log.Log_File(name, process_result.out_lines).
+                  parse_session_info(
+                    command_timings = true,
+                    theory_timings = true,
+                    ml_statistics = true,
+                    task_statistics = true)
+
               using(SQLite.open_database(database))(db =>
                 store.write_session_info(db, name,
                   build_log =
-                    Build_Log.Log_File(name, process_result.out_lines).
-                      parse_session_info(
-                        command_timings = true,
-                        theory_timings = true,
-                        ml_statistics = true,
-                        task_statistics = true),
+                    if (process_result.timeout) build_log.error("Timeout") else build_log,
                   build =
                     Session_Info(sources_stamp(deps, name), input_heaps, heap_stamp,
                       process_result.rc)))