aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-12-06 14:50:44 +0000
committerChristopher Baines <mail@cbaines.net>2023-12-06 14:50:44 +0000
commit89f2b96b796d39857e0ef9849ef4224d572acb27 (patch)
tree6c0e5211bd72fe84f577e9390d23f229d049784b
parenta4fcfade7f55863b133447b33e407d9da79e0e1b (diff)
downloadbuild-coordinator-89f2b96b796d39857e0ef9849ef4224d572acb27.tar
build-coordinator-89f2b96b796d39857e0ef9849ef4224d572acb27.tar.gz
Re-fetch running jobs in the thread pool
As the information might be stale when wait-condition-variable returns.
-rw-r--r--guix-build-coordinator/utils.scm18
1 files changed, 8 insertions, 10 deletions
diff --git a/guix-build-coordinator/utils.scm b/guix-build-coordinator/utils.scm
index 84b4833..9d2e75a 100644
--- a/guix-build-coordinator/utils.scm
+++ b/guix-build-coordinator/utils.scm
@@ -1134,16 +1134,14 @@ References: ~a~%"
(if (too-many-threads?)
(stop-thread)
- (let* ((running-jobs
- (list-jobs))
- (job-args
- (or (get-job running-jobs)
- ;; #f from wait-condition-variable indicates a timeout
- (if (wait-condition-variable
- job-available
- pool-mutex)
- (get-job running-jobs)
- #f))))
+ (let ((job-args
+ (or (get-job (list-jobs))
+ ;; #f from wait-condition-variable indicates a timeout
+ (if (wait-condition-variable
+ job-available
+ pool-mutex)
+ (get-job (list-jobs))
+ #f))))
(if job-args
(begin
(hash-set! running-job-args