From 6c41cce0bee19b3a18edc82b17d5a8a110971ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 26 Mar 2014 16:22:41 +0100 Subject: [PATCH] offload: Wait for the processes involved in 'guix archive --missing'. * guix/scripts/offload.scm (send-files): Keep the second return value of 'filtered-port'. Call 'waitpid' on it. --- guix/scripts/offload.scm | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index 755453704e..6f04cf3b8a 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -26,6 +26,7 @@ #:use-module ((guix build utils) #:select (which mkdir-p)) #:use-module (guix ui) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) @@ -356,15 +357,18 @@ with exit code ~a~%" success, #f otherwise." (define (missing-files files) ;; Return the subset of FILES not already on MACHINE. - (let* ((files (format #f "~{~a~%~}" files)) - (missing (filtered-port - (list (which %lshg-command) - "-l" (build-machine-user machine) - "-p" (number->string (build-machine-port machine)) - "-i" (build-machine-private-key machine) - (build-machine-name machine) - "guix" "archive" "--missing") - (open-input-string files)))) + (let*-values (((files) + (format #f "~{~a~%~}" files)) + ((missing pids) + (filtered-port + (list (which %lshg-command) + "-l" (build-machine-user machine) + "-p" (number->string (build-machine-port machine)) + "-i" (build-machine-private-key machine) + (build-machine-name machine) + "guix" "archive" "--missing") + (open-input-string files)))) + (for-each waitpid pids) (string-tokenize (get-string-all missing)))) (with-store store