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: [email protected]
For additional commands, e-mail: [email protected]