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) {

Reply via email to