From f3475b5b015e14aaf63e42bc4332d7c8067c96bc Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Thu, 21 May 2020 22:05:30 +0100 Subject: Make sure to count all the jobs Otherwise jobs could be fetched needlessly. --- guix-build-coordinator/agent.scm | 8 ++++---- guix-build-coordinator/utils.scm | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm index 20bd74a..e316b7b 100644 --- a/guix-build-coordinator/agent.scm +++ b/guix-build-coordinator/agent.scm @@ -82,7 +82,7 @@ (assoc-ref build "uuid") pre-build-status)))))) - (let-values (((process-job-with-queue count-running-jobs) + (let-values (((process-job-with-queue count-jobs) (create-work-queue max-parallel-builds process-job))) (let ((details (submit-status coordinator-uri uuid password 'idle))) @@ -93,9 +93,9 @@ builds))) (while #t - (let ((running-jobs (count-running-jobs))) - (when (< running-jobs max-parallel-builds) - (match (fetch-new-jobs (- max-parallel-builds running-jobs)) + (let ((jobs (count-jobs))) + (when (< jobs max-parallel-builds) + (match (fetch-new-jobs (- max-parallel-builds jobs)) (() ;; No new jobs available (sleep 30)) diff --git a/guix-build-coordinator/utils.scm b/guix-build-coordinator/utils.scm index f605f7f..a0d8df3 100644 --- a/guix-build-coordinator/utils.scm +++ b/guix-build-coordinator/utils.scm @@ -530,9 +530,10 @@ References: ~a~%" (enq! queue args) (signal-condition-variable job-available))) - (define (count-running-jobs) + (define (count-jobs) (with-mutex queue-mutex - running-jobs-count)) + (+ (q-length queue) + running-jobs-count))) (for-each (lambda (i) @@ -559,4 +560,4 @@ References: ~a~%" (loop))))) (iota thread-count)) - (values process-job count-running-jobs))) + (values process-job count-jobs))) -- cgit v1.2.3