src/Pure/Tools/build_process.scala
changeset 77310 6754b5eceb12
parent 77297 226a880d0423
child 77312 6a6231370432
--- a/src/Pure/Tools/build_process.scala	Sun Feb 19 13:51:49 2023 +0100
+++ b/src/Pure/Tools/build_process.scala	Mon Feb 20 10:29:45 2023 +0100
@@ -374,18 +374,25 @@
       build_options.seconds("editor_input_delay").sleep()
     }
 
-  def run(): Map[String, Build_Process.Result] = {
-    while (test_running()) {
-      if (progress.stopped) stop_running()
+  def run(): Map[String, Process_Result] = {
+    if (test_running()) {
+      while (test_running()) {
+        if (progress.stopped) stop_running()
+
+        for (job <- finished_running()) finish_job(job)
 
-      for (job <- finished_running()) finish_job(job)
-
-      next_pending() match {
-        case Some(session_name) => start_job(session_name)
-        case None => sleep()
+        next_pending() match {
+          case Some(session_name) => start_job(session_name)
+          case None => sleep()
+        }
+      }
+      synchronized {
+        for ((name, result) <- _results) yield name -> result.process_result
       }
     }
-
-    synchronized { _results }
+    else {
+      progress.echo_warning("Nothing to build")
+      Map.empty[String, Process_Result]
+    }
   }
 }