]> gitweb.factorcode.org Git - factor.git/commitdiff
concurrency.combinators: add parallel-map-timeout
authorDoug Coleman <doug.coleman@gmail.com>
Sat, 22 Apr 2023 14:22:34 +0000 (09:22 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Sat, 22 Apr 2023 14:22:34 +0000 (09:22 -0500)
basis/concurrency/combinators/combinators.factor

index b139e01ceae7614905df9b3356b65e5e6b27a6f1..a6b4b766a91a2e30745128282c90c765dcb5a221 100644 (file)
@@ -38,11 +38,17 @@ PRIVATE>
 : future-values ( futures -- futures )
     [ ?future ] map! ; inline
 
+: future-values-timeout ( futures timeout -- futures )
+    '[ _ ?future-timeout ] map! ; inline
+
 PRIVATE>
 
 : parallel-map ( seq quot: ( elt -- newelt ) -- newseq )
     [future] map future-values ; inline
 
+: parallel-map-timeout (  seq  quot: ( elt -- newelt ) timeout -- newseq )
+    [ [future] map ] dip future-values-timeout ; inline
+
 : parallel-assoc-map-as ( assoc quot: ( key value -- newkey newvalue ) exemplar -- newassoc )
     [
         [ 2array ] compose '[ _ 2curry future ] { } assoc>map future-values