This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit d1a866d0c8fe38c38b722df02c6fac8ba23d28e8 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri Jan 17 11:00:38 2020 +0100 CAMEL-14534: camel-core - Optimize reactive engine to use Deque instead of LinkedList which is faster and dont cause soo much object allocations. --- .../apache/camel/impl/engine/DefaultReactiveExecutor.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultReactiveExecutor.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultReactiveExecutor.java index b12b8f4..d3467b1 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultReactiveExecutor.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultReactiveExecutor.java @@ -16,12 +16,12 @@ */ package org.apache.camel.impl.engine; -import java.util.LinkedList; +import java.util.ArrayDeque; +import java.util.Deque; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.function.Supplier; -import org.apache.camel.AsyncCallback; import org.apache.camel.StaticService; import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedResource; @@ -136,8 +136,8 @@ public class DefaultReactiveExecutor extends ServiceSupport implements ReactiveE private static class Worker { private final DefaultReactiveExecutor executor; - private volatile LinkedList<Runnable> queue = new LinkedList<>(); - private volatile LinkedList<LinkedList<Runnable>> back; + private volatile Deque<Runnable> queue = new ArrayDeque<>(); + private volatile Deque<Deque<Runnable>> back; private volatile boolean running; public Worker(DefaultReactiveExecutor executor) { @@ -151,10 +151,10 @@ public class DefaultReactiveExecutor extends ServiceSupport implements ReactiveE if (main) { if (!queue.isEmpty()) { if (back == null) { - back = new LinkedList<>(); + back = new ArrayDeque<>(); } back.push(queue); - queue = new LinkedList<>(); + queue = new ArrayDeque<>(); } } if (first) {