aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/agent.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2021-02-15 18:52:44 +0000
committerChristopher Baines <mail@cbaines.net>2021-02-15 18:52:44 +0000
commitb3733bca21de607fd7a70319e66e3ff49996a974 (patch)
tree95a6f290c9bf9715808ac52086962e1bdf2ad6f0 /guix-build-coordinator/agent.scm
parent392e2df9091f69567c77a3063da8ab7368ad521b (diff)
downloadbuild-coordinator-b3733bca21de607fd7a70319e66e3ff49996a974.tar
build-coordinator-b3733bca21de607fd7a70319e66e3ff49996a974.tar.gz
Avoid some threads and locks when running on the hurd
I've see the process hang on the hurd, and I think this might help.
Diffstat (limited to 'guix-build-coordinator/agent.scm')
-rw-r--r--guix-build-coordinator/agent.scm29
1 files changed, 15 insertions, 14 deletions
diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm
index d970a24..ed2adb2 100644
--- a/guix-build-coordinator/agent.scm
+++ b/guix-build-coordinator/agent.scm
@@ -210,20 +210,21 @@
(process-job-with-queue job-args))
(vector->list (assoc-ref details "builds")))
- (call-with-new-thread
- (lambda ()
- (sigaction SIGUSR1
- (lambda _
- (display-info)))
-
- (while #t (sleep 100000))))
-
- (call-with-new-thread
- (lambda ()
- (let loop ((line (get-line (current-input-port))))
- (unless (eof-object? line)
- (display-info)
- (loop (get-line (current-input-port)))))))
+ (unless (running-on-the-hurd?)
+ (call-with-new-thread
+ (lambda ()
+ (sigaction SIGUSR1
+ (lambda _
+ (display-info)))
+
+ (while #t (sleep 100000))))
+
+ (call-with-new-thread
+ (lambda ()
+ (let loop ((line (get-line (current-input-port))))
+ (unless (eof-object? line)
+ (display-info)
+ (loop (get-line (current-input-port))))))))
(while #t
(let ((current-threads (count-threads))