30 lines
768 B
Typst
Raw Permalink Normal View History

2024-12-02 22:56:33 +01:00
#import "../utils.typ": UNBORN, READY, RUNNING, TERMINATED
#let _prepare-tasks(tasks) = {
let processes = (:)
for (i, task) in tasks.enumerate() {
let id = str(i)
task.insert("id", id)
task.insert("state", UNBORN)
processes.insert(id, (task: task, events: ()))
tasks.at(i) = task
}
return (processes, tasks)
}
#let _prepare-output(processes) = {
return processes.values()
.map(p => (
pid: p.task.pid,
priority: p.task.priority,
events: p.events
))
.sorted(key: t => t.pid)
}
#let log-list(list) = {
if list == none or list.len() == 0 {
return "queue:"
}
return "queue: " + list.map(t => str(t.pid)).join(", ")
}