diff options
author | Christopher Baines <mail@cbaines.net> | 2020-12-23 14:57:14 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-12-23 14:57:14 +0000 |
commit | c4e5a39a4af6fe13a341631a1862ae50b407f82a (patch) | |
tree | af4217f198750bfc3d69b169accd19d7240e78e6 /guix-build-coordinator/build-allocator.scm | |
parent | a52c76f6a7d2bd57f9837625b82a695b8455d4d5 (diff) | |
download | build-coordinator-c4e5a39a4af6fe13a341631a1862ae50b407f82a.tar build-coordinator-c4e5a39a4af6fe13a341631a1862ae50b407f82a.tar.gz |
Skip some unnecessary prioritisation in the basic allocator
Diffstat (limited to 'guix-build-coordinator/build-allocator.scm')
-rw-r--r-- | guix-build-coordinator/build-allocator.scm | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/guix-build-coordinator/build-allocator.scm b/guix-build-coordinator/build-allocator.scm index 614bd0f..2fc1a27 100644 --- a/guix-build-coordinator/build-allocator.scm +++ b/guix-build-coordinator/build-allocator.scm @@ -161,6 +161,21 @@ builds) builds)) + (define (limit-processed-sublists lists) + (if planned-builds-for-agent-limit + (let loop ((remaining-lists lists) + (kept-lists '()) + (count 0)) + (if (or (>= count planned-builds-for-agent-limit) + (null? remaining-lists)) + (reverse kept-lists) + (loop (cdr remaining-lists) + (cons (first remaining-lists) + kept-lists) + (+ count + (length (first remaining-lists)))))) + lists)) + (define (break-builds-in-to-priority-sublists all-builds) (define (build-priority build) (hash-ref derived-build-priorities-hash @@ -353,8 +368,9 @@ (let ((final-ordered-builds (concatenate (map sort-priority-sublist - (break-builds-in-to-priority-sublists - builds-sorted-by-derived-priority))))) + (limit-processed-sublists + (break-builds-in-to-priority-sublists + builds-sorted-by-derived-priority)))))) (let ((builds-for-agent (limit-planned-builds final-ordered-builds))) (map (lambda (build-id ordering) |