From d2cf217378fd8da4020b46a287b977ef0ac32a38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Br=C3=A9gier?= Date: Sat, 19 May 2012 18:16:59 +0300 Subject: [PATCH 1/2] Proposal for fix related to 1rst issue of #345 Thread.sleep(wait) => Thread.sleep((wait/10)*10) (see http://www.javamex.com/tutorials/threads/sleep_issues.shtml) --- .../netty/handler/traffic/AbstractTrafficShapingHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/jboss/netty/handler/traffic/AbstractTrafficShapingHandler.java b/src/main/java/org/jboss/netty/handler/traffic/AbstractTrafficShapingHandler.java index 3cfb28e390..2ec65af93b 100644 --- a/src/main/java/org/jboss/netty/handler/traffic/AbstractTrafficShapingHandler.java +++ b/src/main/java/org/jboss/netty/handler/traffic/AbstractTrafficShapingHandler.java @@ -358,7 +358,7 @@ public abstract class AbstractTrafficShapingHandler extends // Time is too short, so just lets continue return 0; } - return bytes * 1000 / limit - interval; + return ((bytes * 1000 / limit - interval)/10)*10; } @Override From 16e271325d741696feaff705ed32bd1614a50775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Br=C3=A9gier?= Date: Sat, 19 May 2012 18:18:31 +0300 Subject: [PATCH 2/2] Proposal for fix related to 1rst issue of #345 Thread.sleep(wait) => Thread.sleep((wait/10)*10) (see http://www.javamex.com/tutorials/threads/sleep_issues.shtml) --- .../org/jboss/netty/handler/traffic/TrafficCounter.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/jboss/netty/handler/traffic/TrafficCounter.java b/src/main/java/org/jboss/netty/handler/traffic/TrafficCounter.java index 2fc4f0f2e0..32a0a236e0 100644 --- a/src/main/java/org/jboss/netty/handler/traffic/TrafficCounter.java +++ b/src/main/java/org/jboss/netty/handler/traffic/TrafficCounter.java @@ -247,9 +247,10 @@ public class TrafficCounter { * @param newcheckInterval */ public void configure(long newcheckInterval) { - if (checkInterval.get() != newcheckInterval) { - checkInterval.set(newcheckInterval); - if (newcheckInterval <= 0) { + long newInterval = (newcheckInterval/10)*10; + if (checkInterval.get() != newInterval) { + checkInterval.set(newInterval); + if (newInterval <= 0) { stop(); // No more active monitoring lastTime.set(System.currentTimeMillis());