diff options
Diffstat (limited to 'guix-build-coordinator/build-allocator.scm')
-rw-r--r-- | guix-build-coordinator/build-allocator.scm | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/guix-build-coordinator/build-allocator.scm b/guix-build-coordinator/build-allocator.scm index f1d4a42..f7c7ef8 100644 --- a/guix-build-coordinator/build-allocator.scm +++ b/guix-build-coordinator/build-allocator.scm @@ -489,12 +489,16 @@ (datastore-fetch-prioritised-unprocessed-builds datastore))) (define systems-for-builds - (map (lambda (build-id) - (cons build-id - (datastore-find-build-derivation-system - datastore - build-id))) - prioritised-builds)) + ;; TODO Should be one query + (let ((table (make-hash-table))) + (for-each (lambda (build-id) + (hash-set! table + build-id + (datastore-find-build-derivation-system + datastore + build-id))) + prioritised-builds) + table)) (define tags-for-build (let ((build-tags (make-hash-table))) @@ -538,7 +542,7 @@ (log "build:" build-id) (and (or (null? requested-systems) - (let ((build-system (assoc-ref systems-for-builds build-id))) + (let ((build-system (hash-ref systems-for-builds build-id))) (member build-system requested-systems))) (agent-tags-match-build-tags agent-tags tags-for-build agent-id build-id) |