hyperhive/hive-c0re/src/job_queue
Repository files (latest commit first)
Filename Latest commit message Latest commit date
damocles c16c31c0f9 job_queue scheduler: observe shutdown every loop iteration, document the no-persistence invariant
run_worker only polled shutdown.changed() inside the select! arm, which the
claim-and-spawn branch skips via continue whenever there's ready work. Under
a sustained stream of ready claims (a boot sweep across agents is the
realistic case) exit was deferred until the queue happened to drain instead
of being observed promptly.

check *shutdown.borrow() explicitly at the top of every loop iteration
instead of relying solely on the select! arm, so a busy loop still sees
shutdown promptly.

also documented why dropping pending Queued DAGs on shutdown is safe: every
NodeKind is idempotent-convergent, which is a property of the node set, not
of the queue, and isn't enforced by the type system. flagged the side-effect
tails (EmitRebuilt, ResolveApproval) as the ones closest to the edge.

fixes hyperhive/hyperhive#2848
2026-07-30 12:17:38 +02:00
..
exec.rs feat(#2454): drain agents before stopping them in the boot sweep 2026-07-27 20:16:56 +02:00
mod.rs refactor(#2825): complete_node takes only the node id 2026-07-28 12:42:31 +02:00
model.rs refactor(#2772): enumflags2 for the edge set; drop re-export shims 2026-07-27 19:06:27 +02:00
resource.rs feat(job-queue): promote the meta-repo deploy window to a queue resource 2026-07-25 21:20:56 +02:00
scheduler.rs job_queue scheduler: observe shutdown every loop iteration, document the no-persistence invariant 2026-07-30 12:17:38 +02:00
submit.rs feat(#2454): drain agents before stopping them in the boot sweep 2026-07-27 20:16:56 +02:00
templates.rs feat(#2454): drain agents before stopping them in the boot sweep 2026-07-27 20:16:56 +02:00
tests.rs refactor(#2825): complete_node takes only the node id 2026-07-28 12:42:31 +02:00