Author: remm Date: Wed Mar 28 07:01:53 2007 New Revision: 523331 URL: http://svn.apache.org/viewvc?view=rev&rev=523331 Log: - The poller now has good performance, so remove firstReadTimeout (the algorithm can still be retrieved from svn if needed).
Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?view=diff&rev=523331&r1=523330&r2=523331 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Wed Mar 28 07:01:53 2007 @@ -90,13 +90,6 @@ responseHeaderMessage = new AjpMessage(packetSize); bodyMessage = new AjpMessage(packetSize); - readTimeout = endpoint.getFirstReadTimeout() * 1000; - if (readTimeout == 0) { - readTimeout = 100 * 1000; - } else if (readTimeout < 0) { - readTimeout = -1; - } - // Allocate input and output buffers inputBuffer = ByteBuffer.allocateDirect(packetSize * 2); inputBuffer.limit(0); @@ -189,13 +182,6 @@ /** - * The socket timeout used when reading the first block of the request - * header. - */ - protected long readTimeout; - - - /** * Temp message bytes used for processing. */ protected MessageBytes tmpMB = MessageBytes.newInstance(); @@ -371,11 +357,6 @@ // Error flag error = false; - int limit = 0; - if (endpoint.getFirstReadTimeout() > 0) { - limit = endpoint.getMaxThreads() / 2; - } - boolean openSocket = true; boolean keptAlive = false; @@ -384,8 +365,7 @@ // Parsing the request header try { // Get first message of the request - if (!readMessage(requestHeaderMessage, true, - keptAlive && (endpoint.getCurrentThreadsBusy() >= limit))) { + if (!readMessage(requestHeaderMessage, true, keptAlive)) { // This means that no data is available right now // (long keepalive), so that the processor should be recycled // and the method should return true @@ -1061,15 +1041,9 @@ } int nRead; while (inputBuffer.remaining() < n) { - if (readTimeout > 0) { - nRead = Socket.recvbbt - (socket, inputBuffer.limit(), - inputBuffer.capacity() - inputBuffer.limit(), readTimeout); - } else { - nRead = Socket.recvbb - (socket, inputBuffer.limit(), - inputBuffer.capacity() - inputBuffer.limit()); - } + nRead = Socket.recvbb + (socket, inputBuffer.limit(), + inputBuffer.capacity() - inputBuffer.limit()); if (nRead > 0) { inputBuffer.limit(inputBuffer.limit() + nRead); } else { Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java?view=diff&rev=523331&r1=523330&r2=523331 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java Wed Mar 28 07:01:53 2007 @@ -364,17 +364,6 @@ } - public int getFirstReadTimeout() { - return ep.getFirstReadTimeout(); - } - - - public void setFirstReadTimeout(int i) { - ep.setFirstReadTimeout(i); - setAttribute("firstReadTimeout", "" + i); - } - - public int getPollTime() { return ep.getPollTime(); } Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?view=diff&rev=523331&r1=523330&r2=523331 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Wed Mar 28 07:01:53 2007 @@ -87,14 +87,7 @@ this.endpoint = endpoint; request = new Request(); - int readTimeout = endpoint.getFirstReadTimeout(); - if (readTimeout == 0) { - readTimeout = 100; - } else if (readTimeout < 0) { - readTimeout = -1; - } - inputBuffer = new InternalAprInputBuffer(request, headerBufferSize, - readTimeout); + inputBuffer = new InternalAprInputBuffer(request, headerBufferSize); request.setInputBuffer(inputBuffer); response = new Response(); @@ -800,11 +793,6 @@ int keepAliveLeft = maxKeepAliveRequests; long soTimeout = endpoint.getSoTimeout(); - int limit = 0; - if (endpoint.getFirstReadTimeout() > 0 || endpoint.getFirstReadTimeout() < -1) { - limit = endpoint.getMaxThreads() / 2; - } - boolean keptAlive = false; boolean openSocket = false; @@ -815,8 +803,7 @@ if( !disableUploadTimeout && keptAlive && soTimeout > 0 ) { Socket.timeoutSet(socket, soTimeout * 1000); } - if (!inputBuffer.parseRequestLine - (keptAlive && (endpoint.getCurrentThreadsBusy() >= limit))) { + if (!inputBuffer.parseRequestLine(keptAlive)) { // This means that no data is available right now // (long keepalive), so that the processor should be recycled // and the method should return true Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java?view=diff&rev=523331&r1=523330&r2=523331 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java Wed Mar 28 07:01:53 2007 @@ -264,15 +264,6 @@ setAttribute("port", "" + port); } - public int getFirstReadTimeout() { - return ep.getFirstReadTimeout(); - } - - public void setFirstReadTimeout( int i ) { - ep.setFirstReadTimeout(i); - setAttribute("firstReadTimeout", "" + i); - } - public int getPollTime() { return ep.getPollTime(); } Modified: tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java?view=diff&rev=523331&r1=523330&r2=523331 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java Wed Mar 28 07:01:53 2007 @@ -51,8 +51,7 @@ /** * Alternate constructor. */ - public InternalAprInputBuffer(Request request, int headerBufferSize, - long readTimeout) { + public InternalAprInputBuffer(Request request, int headerBufferSize) { this.request = request; headers = request.getMimeHeaders(); @@ -73,12 +72,6 @@ parsingHeader = true; swallowInput = true; - if (readTimeout < 0) { - this.readTimeout = -1; - } else { - this.readTimeout = readTimeout * 1000; - } - } @@ -181,13 +174,6 @@ protected int lastActiveFilter; - /** - * The socket timeout used when reading the first block of the request - * header. - */ - protected long readTimeout; - - // ------------------------------------------------------------- Properties @@ -381,26 +367,8 @@ if (useAvailableData) { return false; } - if (readTimeout == -1) { - if (!fill()) - throw new EOFException(sm.getString("iib.eof.error")); - } else { - // Do a simple read with a short timeout - bbuf.clear(); - int nRead = Socket.recvbbt - (socket, 0, buf.length - lastValid, readTimeout); - if (nRead > 0) { - bbuf.limit(nRead); - bbuf.get(buf, pos, nRead); - lastValid = pos + nRead; - } else { - if ((-nRead) == Status.ETIMEDOUT || (-nRead) == Status.TIMEUP) { - return false; - } else { - throw new IOException(sm.getString("iib.failedread")); - } - } - } + if (!fill()) + throw new EOFException(sm.getString("iib.eof.error")); } chr = buf[pos++]; @@ -416,26 +384,8 @@ if (useAvailableData) { return false; } - if (readTimeout == -1) { - if (!fill()) - throw new EOFException(sm.getString("iib.eof.error")); - } else { - // Do a simple read with a short timeout - bbuf.clear(); - int nRead = Socket.recvbbt - (socket, 0, buf.length - lastValid, readTimeout); - if (nRead > 0) { - bbuf.limit(nRead); - bbuf.get(buf, pos, nRead); - lastValid = pos + nRead; - } else { - if ((-nRead) == Status.ETIMEDOUT || (-nRead) == Status.TIMEUP) { - return false; - } else { - throw new IOException(sm.getString("iib.failedread")); - } - } - } + if (!fill()) + throw new EOFException(sm.getString("iib.eof.error")); } // Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?view=diff&rev=523331&r1=523330&r2=523331 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Wed Mar 28 07:01:53 2007 @@ -272,14 +272,6 @@ /** - * Timeout on first request read before going to the poller, in ms. - */ - protected int firstReadTimeout = -1; - public int getFirstReadTimeout() { return firstReadTimeout; } - public void setFirstReadTimeout(int firstReadTimeout) { this.firstReadTimeout = firstReadTimeout; } - - - /** * Poll interval, in microseconds. The smaller the value, the more CPU the poller * will use, but the more responsive to activity it will be. */ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]