[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/2] gwl/workflows: Execute independent processes in parallel
From: |
Olivier Dion |
Subject: |
[PATCH 1/2] gwl/workflows: Execute independent processes in parallel |
Date: |
Tue, 14 Jun 2022 15:53:36 -0400 |
Processes in the same list can be executed in parallel with `par-map'. The
results are then appended to the accumulator.
---
gwl/workflows.scm | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/gwl/workflows.scm b/gwl/workflows.scm
index 03b29e0..74a1c74 100644
--- a/gwl/workflows.scm
+++ b/gwl/workflows.scm
@@ -43,6 +43,7 @@
#:use-module (ice-9 match)
#:use-module (ice-9 format)
+ #:use-module (ice-9 threads)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9 gnu)
#:use-module (srfi srfi-11)
@@ -447,13 +448,12 @@ can be used in a fold over a WORKFLOW's processes."
(lambda (item acc)
(match item
((? list?)
- (fold (lambda (process res)
- (cons (proc process) res))
- acc
- ;; By reversing the order of the processes
- ;; in STEP we keep the output order the same
- ;; as the order of the sequential function.
- (reverse item)))
+ (append
+ ;; By reversing the order of the processes
+ ;; in STEP we keep the output order the same
+ ;; as the order of the sequential function.
+ (par-map (cut proc <>) (reverse item))
+ acc))
(_ (cons (proc item) acc)))))
(define* (workflow-prepare workflow engine
--
2.36.1