diff options
Diffstat (limited to 'guix-build-coordinator/build-allocator.scm')
-rw-r--r-- | guix-build-coordinator/build-allocator.scm | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/guix-build-coordinator/build-allocator.scm b/guix-build-coordinator/build-allocator.scm index f2db2b5..f24aa04 100644 --- a/guix-build-coordinator/build-allocator.scm +++ b/guix-build-coordinator/build-allocator.scm @@ -87,13 +87,16 @@ (define systems-for-builds ;; TODO Should be one query - (map (lambda (build) - (let ((build-id (assq-ref build 'uuid))) - (cons build-id - (datastore-find-build-derivation-system - datastore - build-id)))) - builds)) + (let ((table (make-hash-table builds-count))) + (for-each (lambda (build) + (let ((build-id (assq-ref build 'uuid))) + (hash-set! table + build-id + (datastore-find-build-derivation-system + datastore + build-id)))) + builds) + table)) (define (filter-builds-for-agent agent-id) (define requested-systems @@ -126,8 +129,8 @@ (log "build:" (assq-ref build 'uuid)) (and (or (null? requested-systems) - (let ((build-system (assoc-ref systems-for-builds - (assq-ref build 'uuid)))) + (let ((build-system (hash-ref systems-for-builds + (assq-ref build 'uuid)))) (member build-system requested-systems))) (let* ((build-id (assq-ref build 'uuid)) (setup-failures-for-build |