Author: fhanik Date: Thu Jul 12 20:11:31 2012 New Revision: 1360905 URL: http://svn.apache.org/viewvc?rev=1360905&view=rev Log: Correct handling of timeout - negative or zero means no timeout but an instant
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioSelectorPool.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioSelectorPool.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioSelectorPool.java?rev=1360905&r1=1360904&r2=1360905&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/NioSelectorPool.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioSelectorPool.java Thu Jul 12 20:11:31 2012 @@ -196,7 +196,11 @@ public class NioSelectorPool { //register OP_WRITE to the selector if (key==null) key = socket.getIOChannel().register(selector, SelectionKey.OP_WRITE); else key.interestOps(SelectionKey.OP_WRITE); - keycount = selector.select(writeTimeout); + if (writeTimeout<=0) { + keycount = selector.selectNow(); + } else { + keycount = selector.select(writeTimeout); + } } if (writeTimeout > 0 && (selector == null || keycount == 0) ) timedout = (System.currentTimeMillis()-time)>=writeTimeout; }//while @@ -264,7 +268,11 @@ public class NioSelectorPool { //register OP_WRITE to the selector if (key==null) key = socket.getIOChannel().register(selector, SelectionKey.OP_READ); else key.interestOps(SelectionKey.OP_READ); - keycount = selector.select(readTimeout); + if (readTimeout<=0) { + keycount = selector.selectNow(); + } else { + keycount = selector.select(readTimeout); + } } if (readTimeout > 0 && (selector == null || keycount == 0) ) timedout = (System.currentTimeMillis()-time)>=readTimeout; }//while --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org