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];