aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix-data-service/utils.scm22
1 files changed, 12 insertions, 10 deletions
diff --git a/guix-data-service/utils.scm b/guix-data-service/utils.scm
index 09f47f8..5d7d4ba 100644
--- a/guix-data-service/utils.scm
+++ b/guix-data-service/utils.scm
@@ -479,16 +479,18 @@ available. Return the resource once PROC has returned."
(define (par-mapper' mapper cons)
(lambda (proc . lists)
- (let loop ((lists lists))
- (match lists
- (((heads tails ...) ...)
- (let ((tail (loop tails))
- (head (defer-to-parallel-fiber
- (lambda ()
- (apply proc heads)))))
- (cons (fetch-result-of-defered-thunks head) tail)))
- (_
- '())))))
+ (apply
+ fetch-result-of-defered-thunks
+ (let loop ((lists lists))
+ (match lists
+ (((heads tails ...) ...)
+ (let ((tail (loop tails))
+ (head (defer-to-parallel-fiber
+ (lambda ()
+ (apply proc heads)))))
+ (cons head tail)))
+ (_
+ '()))))))
(define par-map& (par-mapper' map cons))