diff --git a/src/build/queue.v b/src/build/queue.v index 5d50f34..7902173 100644 --- a/src/build/queue.v +++ b/src/build/queue.v @@ -144,7 +144,9 @@ fn (mut q BuildJobQueue) pop_invalid(arch string) { // peek shows the first job for the given architecture that's ready to be // executed, if present. pub fn (mut q BuildJobQueue) peek(arch string) ?BuildJob { - rlock q.mutex { + // Even peek requires a write lock, because pop_invalid can modify the data + // structure + lock q.mutex { if arch !in q.queues { return none } diff --git a/src/server/server.v b/src/server/server.v index 6d18f09..74b1f37 100644 --- a/src/server/server.v +++ b/src/server/server.v @@ -36,9 +36,7 @@ fn (mut app App) init_job_queue() ! { for targets.len > 0 { for target in targets { - for arch in target.arch { - app.job_queue.insert(target: target, arch: arch.value)! - } + app.job_queue.insert_all(target)! } i += 25