equal
deleted
inserted
replaced
37 start: Date, |
37 start: Date, |
38 stamp: Date, |
38 stamp: Date, |
39 stop: Option[Date], |
39 stop: Option[Date], |
40 serial: Long |
40 serial: Long |
41 ) |
41 ) |
|
42 |
|
43 object Task { |
|
44 type Entry = (String, Task) |
|
45 def entry(name: String, deps: List[String], build_uuid: String): Entry = |
|
46 name -> Task(name, deps, build_uuid) |
|
47 def entry(session: Build_Job.Session_Context, build_context: isabelle.Build.Context): Entry = |
|
48 entry(session.name, session.deps, build_context.build_uuid) |
|
49 } |
42 |
50 |
43 sealed case class Task( |
51 sealed case class Task( |
44 name: String, |
52 name: String, |
45 deps: List[String], |
53 deps: List[String], |
46 build_uuid: String |
54 build_uuid: String |
580 Map.from[String, Task], |
588 Map.from[String, Task], |
581 { res => |
589 { res => |
582 val name = res.string(Pending.name) |
590 val name = res.string(Pending.name) |
583 val deps = res.string(Pending.deps) |
591 val deps = res.string(Pending.deps) |
584 val build_uuid = res.string(Pending.build_uuid) |
592 val build_uuid = res.string(Pending.build_uuid) |
585 name -> Task(name, split_lines(deps), build_uuid) |
593 Task.entry(name, split_lines(deps), build_uuid) |
586 }) |
594 }) |
587 |
595 |
588 def update_pending( |
596 def update_pending( |
589 db: SQL.Database, |
597 db: SQL.Database, |
590 pending: State.Pending, |
598 pending: State.Pending, |
979 val sessions1 = state.sessions.init(build_context, _database_server, progress = build_progress) |
987 val sessions1 = state.sessions.init(build_context, _database_server, progress = build_progress) |
980 val pending1 = |
988 val pending1 = |
981 sessions1.iterator.foldLeft(state.pending) { |
989 sessions1.iterator.foldLeft(state.pending) { |
982 case (map, session) => |
990 case (map, session) => |
983 if (map.isDefinedAt(session.name)) map |
991 if (map.isDefinedAt(session.name)) map |
984 else map + (session.name -> Build_Process.Task(session.name, session.deps, build_uuid)) |
992 else map + Build_Process.Task.entry(session, build_context) |
985 } |
993 } |
986 state.copy(sessions = sessions1, pending = pending1) |
994 state.copy(sessions = sessions1, pending = pending1) |
987 } |
995 } |
988 |
996 |
989 protected def next_jobs(state: Build_Process.State): List[String] = { |
997 protected def next_jobs(state: Build_Process.State): List[String] = { |