clarified: more operations;
authorFabian Huch <huch@in.tum.de>
Mon, 01 Jul 2024 14:46:51 +0200
changeset 80468 8ae5312032cc
parent 80467 010d45681b87
child 80469 a3bae6dd7344
clarified: more operations;
src/Pure/Build/build_manager.scala
--- a/src/Pure/Build/build_manager.scala	Mon Jul 01 14:31:30 2024 +0200
+++ b/src/Pure/Build/build_manager.scala	Mon Jul 01 14:46:51 2024 +0200
@@ -234,6 +234,11 @@
 
     def add_running(job: Job): State = copy(running = running + (job.name -> job))
     def remove_running(name: String): State = copy(running = running - name)
+    def cancel_running(name: String): State =
+      running.get(name) match {
+        case Some(job) => copy(running = (running - name) + (name -> job.copy(cancelled = true)))
+        case None => this
+      }
 
     def add_finished(result: Result): State = copy(finished = finished + (result.name -> result))
 
@@ -1178,10 +1183,7 @@
                   _state = _state.remove_pending(task.name)
                   Model.Cancelled
                 case job: Job =>
-                  val job1 = job.copy(cancelled = true)
-                  _state = _state
-                    .remove_running(job.name)
-                    .add_running(job1)
+                  _state = _state.cancel_running(job.name)
                   Model.Cancelled
                 case result: Result => Model.Details(result, _state, public = false)
               }