aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/coordinator.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/coordinator.scm')
-rw-r--r--guix-build-coordinator/coordinator.scm20
1 files changed, 18 insertions, 2 deletions
diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm
index 2d7f3d9..59891d1 100644
--- a/guix-build-coordinator/coordinator.scm
+++ b/guix-build-coordinator/coordinator.scm
@@ -504,7 +504,22 @@
;; to run-fibers being called.
(let ((output-hash-channel
(make-output-hash-channel
- build-coordinator)))
+ build-coordinator))
+
+ (utility-thread-pool-channel
+ (make-worker-thread-channel
+ (const '())
+ #:name "utility"
+ #:parallelism 6
+ #:delay-logger
+ (lambda (seconds-delayed)
+ (log-delay "utility thread channel"
+ seconds-delayed)
+ (when (> seconds-delayed 0.1)
+ (format
+ (current-error-port)
+ "warning: utility thread channel delayed by ~1,2f seconds~%"
+ seconds-delayed))))))
(let ((finished? (make-condition)))
(call-with-sigint
@@ -575,7 +590,8 @@
secret-key-base
(uri-host client-communication-uri)
(uri-port client-communication-uri)
- build-coordinator)
+ build-coordinator
+ utility-thread-pool-channel)
;; Guile seems to just stop listening on ports, so try to
;; monitor that internally and just quit if it happens