equal
deleted
inserted
replaced
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] = |