src/Pure/Tools/build_process.scala
changeset 77297 226a880d0423
parent 77296 eeaa2872320b
child 77310 6754b5eceb12
--- a/src/Pure/Tools/build_process.scala	Mon Feb 13 13:26:43 2023 +0100
+++ b/src/Pure/Tools/build_process.scala	Mon Feb 13 22:24:34 2023 +0100
@@ -197,8 +197,12 @@
 
   private def stop_running(): Unit = synchronized { _running.valuesIterator.foreach(_.terminate()) }
 
-  private def finished_running(): List[Build_Job] = synchronized {
-    _running.valuesIterator.filter(_.is_finished).toList
+  private def finished_running(): List[Build_Job.Build_Session] = synchronized {
+    List.from(
+      _running.valuesIterator.flatMap {
+        case job: Build_Job.Build_Session if job.is_finished => Some(job)
+        case _ => None
+      })
   }
 
   private def job_running(name: String, job: Build_Job): Build_Job = synchronized {
@@ -233,7 +237,7 @@
     "Timing " + session_name + " (" + threads + " threads, " + timing.message_factor + ")"
   }
 
-  private def finish_job(job: Build_Job): Unit = {
+  private def finish_job(job: Build_Job.Build_Session): Unit = {
     val session_name = job.session_name
     val process_result = job.join
     val output_heap = job.finish
@@ -351,7 +355,7 @@
         synchronized {
           val numa_node = next_numa_node()
           job_running(session_name,
-            new Build_Job(progress, session_background, store, do_store,
+            new Build_Job.Build_Session(progress, session_background, store, do_store,
               resources, session_setup, input_heaps, numa_node))
         }
       job.start()