aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/client-communication.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/client-communication.scm')
-rw-r--r--guix-build-coordinator/client-communication.scm15
1 files changed, 11 insertions, 4 deletions
diff --git a/guix-build-coordinator/client-communication.scm b/guix-build-coordinator/client-communication.scm
index 3d780c4..354cb31 100644
--- a/guix-build-coordinator/client-communication.scm
+++ b/guix-build-coordinator/client-communication.scm
@@ -65,7 +65,8 @@
(define (start-client-request-server secret-key-base
host
port
- build-coordinator)
+ build-coordinator
+ utility-thread-pool-channel)
(run-server/patched
(lambda (request body)
(log-msg (build-coordinator-logger build-coordinator)
@@ -80,7 +81,8 @@
(uri-path (request-uri request))))
body
secret-key-base
- build-coordinator)))
+ build-coordinator
+ utility-thread-pool-channel)))
#:host host
#:port port))
@@ -88,7 +90,8 @@
method-and-path-components
raw-body
secret-key-base
- build-coordinator)
+ build-coordinator
+ utility-thread-pool-channel)
(define datastore
(build-coordinator-datastore build-coordinator))
@@ -483,7 +486,11 @@
(substitute-derivation store
derivation-file
#:substitute-urls substitute-urls)))
- (read-derivation-from-file* derivation-file))
+ ;; Read the derivation in a thread to avoid blocking fibers
+ (call-with-worker-thread
+ utility-thread-pool-channel
+ (lambda ()
+ (read-derivation-from-file* derivation-file))))
(let ((submit-build-result
(call-with-delay-logging