diff --git a/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java b/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java index e62f221b4fb3e9317d31239710045cb3f78af0c7..829e9f7eb797d54d5070805449fe3e94ffd6643e 100644 --- a/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java +++ b/src/main/java/teetime/stage/basic/distributor/RoundRobinStrategy2.java @@ -38,14 +38,7 @@ public final class RoundRobinStrategy2 implements IDistributorStrategy { success = outputPort.sendNonBlocking(element); if (0 == numLoops) { numWaits++; - // Thread.yield(); - try { - Thread.sleep(1); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - + backoff(); numLoops = numOutputPorts; } numLoops--; @@ -54,6 +47,16 @@ public final class RoundRobinStrategy2 implements IDistributorStrategy { return true; } + private void backoff() { + try { + Thread.sleep(1); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + // Thread.yield(); + } + private <T> OutputPort<T> getNextPortInRoundRobinOrder(final OutputPort<T>[] outputPorts) { final OutputPort<T> outputPort = outputPorts[this.index];