src/Pure/Tools/build_process.scala
changeset 79020 ef76705bf402
parent 78969 1b05c2b10c9f
equal deleted inserted replaced
79019:4df053d29215 79020:ef76705bf402
   214     def inc_serial: State = {
   214     def inc_serial: State = {
   215       require(serial < Long.MaxValue, "serial overflow")
   215       require(serial < Long.MaxValue, "serial overflow")
   216       copy(serial = serial + 1)
   216       copy(serial = serial + 1)
   217     }
   217     }
   218 
   218 
   219     def ready: State.Pending = pending.filter(entry => entry.is_ready && !is_running(entry.name))
   219     def ready: State.Pending = pending.filter(_.is_ready)
       
   220     def next_ready: State.Pending = ready.filter(entry => !is_running(entry.name))
   220 
   221 
   221     def remove_pending(name: String): State =
   222     def remove_pending(name: String): State =
   222       copy(pending = pending.flatMap(
   223       copy(pending = pending.flatMap(
   223         entry => if (entry.name == name) None else Some(entry.resolve(name))))
   224         entry => if (entry.name == name) None else Some(entry.resolve(name))))
   224 
   225 
   976   protected def next_jobs(state: Build_Process.State): List[String] = {
   977   protected def next_jobs(state: Build_Process.State): List[String] = {
   977     val limit = {
   978     val limit = {
   978       if (progress.stopped) { if (build_context.master) Int.MaxValue else 0 }
   979       if (progress.stopped) { if (build_context.master) Int.MaxValue else 0 }
   979       else build_context.max_jobs - state.build_running.length
   980       else build_context.max_jobs - state.build_running.length
   980     }
   981     }
   981     if (limit > 0) state.ready.sortBy(_.name)(state.sessions.ordering).take(limit).map(_.name)
   982     if (limit > 0) state.next_ready.sortBy(_.name)(state.sessions.ordering).take(limit).map(_.name)
   982     else Nil
   983     else Nil
   983   }
   984   }
   984 
   985 
   985   protected def next_node_info(state: Build_Process.State, session_name: String): Host.Node_Info = {
   986   protected def next_node_info(state: Build_Process.State, session_name: String): Host.Node_Info = {
   986     def used_nodes: Set[Int] =
   987     def used_nodes: Set[Int] =