diff options
author | Christopher Baines <mail@cbaines.net> | 2021-02-15 18:52:44 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2021-02-15 18:52:44 +0000 |
commit | b3733bca21de607fd7a70319e66e3ff49996a974 (patch) | |
tree | 95a6f290c9bf9715808ac52086962e1bdf2ad6f0 /guix-build-coordinator/agent.scm | |
parent | 392e2df9091f69567c77a3063da8ab7368ad521b (diff) | |
download | build-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.scm | 29 |
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)) |