You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/02/27 20:47:53 UTC

[camel] 02/02: camel-core - Small optimization in pipeline

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 28f7d4567bb6eb419ed245d171c783e8e727dfbb
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Feb 27 21:41:07 2021 +0100

    camel-core - Small optimization in pipeline
---
 .../src/main/java/org/apache/camel/processor/Pipeline.java       | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
index aeb396d..0beeea6 100644
--- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
+++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/Pipeline.java
@@ -57,7 +57,7 @@ public class Pipeline extends AsyncProcessorSupport implements Navigate<Processo
     private String id;
     private String routeId;
 
-    private final class PipelineTask implements Runnable {
+    private final class PipelineTask implements Runnable, AsyncCallback {
 
         private final Exchange exchange;
         private final AsyncCallback callback;
@@ -70,6 +70,11 @@ public class Pipeline extends AsyncProcessorSupport implements Navigate<Processo
         }
 
         @Override
+        public void done(boolean doneSync) {
+            reactiveExecutor.schedule(this);
+        }
+
+        @Override
         public void run() {
             boolean stop = exchange.isRouteStop();
             int num = index.get();
@@ -87,7 +92,7 @@ public class Pipeline extends AsyncProcessorSupport implements Navigate<Processo
                 // get the next processor
                 AsyncProcessor processor = processors.get(index.getAndIncrement());
 
-                processor.process(exchange, doneSync -> reactiveExecutor.schedule(this));
+                processor.process(exchange, this);
             } else {
                 ExchangeHelper.copyResults(exchange, exchange);