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

Reply via email to