From b0fb800b395039cacf221b8a78350b3f128b669a Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Thu, 19 Mar 2015 15:22:15 +0100
Subject: [PATCH] fixed bug in RoundRobinStrategy2

---
 .../java/teetime/stage/InputPortSizePrinter.java  | 15 +++++++++++++++
 .../basic/distributor/RoundRobinStrategy2.java    |  2 +-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/main/java/teetime/stage/InputPortSizePrinter.java b/src/main/java/teetime/stage/InputPortSizePrinter.java
index cfcac15e..ae629028 100644
--- a/src/main/java/teetime/stage/InputPortSizePrinter.java
+++ b/src/main/java/teetime/stage/InputPortSizePrinter.java
@@ -1,3 +1,18 @@
+/**
+ * Copyright (C) 2015 TeeTime (http://teetime.sourceforge.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package teetime.stage;
 
 import java.util.concurrent.TimeUnit;
diff --git a/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java b/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java
index e6cca92e..a9c843b4 100644
--- a/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java
+++ b/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java
@@ -36,7 +36,6 @@ public final class RoundRobinStrategy2 implements IDistributorStrategy {
 		do {
 			final OutputPort<T> outputPort = getNextPortInRoundRobinOrder(outputPorts);
 			success = outputPort.sendNonBlocking(element);
-			numLoops--;
 			if (0 == numLoops) {
 				numWaits++;
 				// Thread.yield();
@@ -49,6 +48,7 @@ public final class RoundRobinStrategy2 implements IDistributorStrategy {
 
 				numLoops = numOutputPorts;
 			}
+			numLoops--;
 		} while (!success);
 
 		return true;
-- 
GitLab