Author: fhanik Date: Fri Mar 9 15:38:29 2007 New Revision: 516602 URL: http://svn.apache.org/viewvc?view=rev&rev=516602 Log: added fairness counter, using this counter, I will be able to make sure that connections are treated evenly in my next revision of the NioEndpoint. No point in having 20k connections if only half get love.
Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?view=diff&rev=516602&r1=516601&r2=516602 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Fri Mar 9 15:38:29 2007 @@ -1095,6 +1095,8 @@ } else { final SelectionKey key = socket.getIOChannel().keyFor(socket.getPoller().getSelector()); final KeyAttachment att = (KeyAttachment) key.attachment(); + //we are registering the key to start with, reset the fairness counter. + att.setFairness(0); try { if (key != null) { key.interestOps(interestOps); @@ -1304,6 +1306,8 @@ if (!processSocket(channel, SocketStatus.OPEN)) processSocket(channel, SocketStatus.DISCONNECT); } else { + //increase the fairness counter + attachment.incFairness(); //reregister it attachment.interestOps(interestOps); sk.interestOps(interestOps); @@ -1319,6 +1323,8 @@ channel.getIOChannel().socket().close(); } } else { + //increase the fairness counter + attachment.incFairness(); //reregister it attachment.interestOps(interestOps); sk.interestOps(interestOps); @@ -1393,6 +1399,7 @@ comet = false; timeout = -1; error = false; + fairness = 0; } public void reset() { @@ -1425,6 +1432,9 @@ if ( latch == null || latch.getCount() == 0 ) this.latch = new CountDownLatch(cnt); else throw new IllegalStateException("Latch must be at count 0 or null."); } + public int getFairness() { return fairness; } + public void setFairness(int f) { fairness = f;} + public void incFairness() { fairness++; } protected Object mutex = new Object(); protected long lastAccess = -1; protected boolean currentAccess = false; @@ -1433,7 +1443,7 @@ protected boolean error = false; protected NioChannel channel = null; protected CountDownLatch latch = null; - + protected int fairness = 0; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]