diff options
Diffstat (limited to 'guix-build-coordinator/coordinator.scm')
-rw-r--r-- | guix-build-coordinator/coordinator.scm | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm index 5b57823..f0987a4 100644 --- a/guix-build-coordinator/coordinator.scm +++ b/guix-build-coordinator/coordinator.scm @@ -47,7 +47,7 @@ new-agent-password fetch-builds agent-details - make-build-allocator-thread + trigger-build-allocation start-hook-processing-thread build-output-file-location @@ -62,23 +62,29 @@ (datastore build-coordinator-datastore) (hooks build-coordinator-hooks) (metrics-registry build-coordinator-metrics-registry) - (allocation-strategy build-coordinator-allocation-strategy)) + (allocation-strategy build-coordinator-allocation-strategy) + (allocator-thread build-coordinator-allocator-thread + set-build-coordinator-allocator-thread!)) (define* (make-build-coordinator #:key datastore hooks (metrics-registry (make-metrics-registry)) (allocation-strategy basic-build-allocation-strategy)) - (make-build-coordinator-record - datastore - hooks - metrics-registry - allocation-strategy)) + (let ((build-coordinator + (make-build-coordinator-record datastore + hooks + metrics-registry + allocation-strategy))) + (set-build-coordinator-allocator-thread! + build-coordinator + (make-build-allocator-thread build-coordinator)) + + build-coordinator)) (define* (submit-build build-coordinator derivation #:key requested-uuid (priority 0) - (defer-allocation? #f) (ensure-all-related-derivation-outputs-have-builds? #f)) (let ((datastore (build-coordinator-datastore build-coordinator)) (uuid (or requested-uuid (random-v4-uuid)))) @@ -136,6 +142,9 @@ password) password)) +(define (trigger-build-allocation build-coordinator) + ((build-coordinator-allocator-thread build-coordinator))) + (define (allocate-builds build-coordinator) (define datastore (build-coordinator-datastore build-coordinator)) |