From 180d2addd0d0a2d62ee2c036b6a78cfdbb8cd989 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Thu, 14 Jan 2021 08:35:25 -0500 Subject: [PATCH] Support klists of runnables for bursting multicore --- .../iris/scaffold/parallel/BurstExecutor.java | 13 +++++++++++++ .../volmit/iris/scaffold/parallel/MultiBurst.java | 5 +++++ 2 files changed, 18 insertions(+) diff --git a/src/main/java/com/volmit/iris/scaffold/parallel/BurstExecutor.java b/src/main/java/com/volmit/iris/scaffold/parallel/BurstExecutor.java index da5b05126..8e755309d 100644 --- a/src/main/java/com/volmit/iris/scaffold/parallel/BurstExecutor.java +++ b/src/main/java/com/volmit/iris/scaffold/parallel/BurstExecutor.java @@ -27,6 +27,19 @@ public class BurstExecutor } } + public BurstExecutor queue(KList r) { + synchronized(futures) + { + for(Runnable i : r) + { + CompletableFuture c = CompletableFuture.runAsync(i, executor); + futures.add(c); + } + } + + return this; + } + public BurstExecutor queue(Runnable[] r) { synchronized(futures) diff --git a/src/main/java/com/volmit/iris/scaffold/parallel/MultiBurst.java b/src/main/java/com/volmit/iris/scaffold/parallel/MultiBurst.java index f6b6ab001..0d233e36d 100644 --- a/src/main/java/com/volmit/iris/scaffold/parallel/MultiBurst.java +++ b/src/main/java/com/volmit/iris/scaffold/parallel/MultiBurst.java @@ -1,6 +1,7 @@ package com.volmit.iris.scaffold.parallel; import com.volmit.iris.Iris; +import com.volmit.iris.util.KList; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -40,6 +41,10 @@ public class MultiBurst burst(r.length).queue(r).complete(); } + public void burst(KList r) { + burst(r.size()).queue(r).complete(); + } + public void sync(Runnable... r) { for(Runnable i : r)