You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2005/04/15 15:46:11 UTC

cvs commit: jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11 Http11AprProcessor.java InternalAprInputBuffer.java

remm        2005/04/15 06:46:11

  Modified:    http11/src/java/org/apache/coyote/http11
                        Http11AprProcessor.java InternalAprInputBuffer.java
  Log:
  - Fix my hack thanks to a trick from Mladen. Now performance is actually decent.
  
  Revision  Changes    Path
  1.2       +0 -24     jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java
  
  Index: Http11AprProcessor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Http11AprProcessor.java	14 Apr 2005 18:52:28 -0000	1.1
  +++ Http11AprProcessor.java	15 Apr 2005 13:46:11 -0000	1.2
  @@ -745,30 +745,6 @@
           int keepAliveLeft = maxKeepAliveRequests;
           long soTimeout = endpoint.getSoTimeout();
   
  -        // FIXME: Should not be needed 
  -        /*
  -        long oldSoTimeout = soTimeout;
  -        int threadRatio = (endpoint.getCurrentThreadsBusy() * 100)
  -                / endpoint.getMaxThreads();
  -        if ((threadRatio > 33) && (threadRatio <= 66)) {
  -            soTimeout = soTimeout / 2;
  -        } else if ((threadRatio > 66) && (threadRatio <= 90)) {
  -            soTimeout = soTimeout / 3;
  -            keepAliveLeft = 1;
  -        } else if (threadRatio > 90) {
  -            soTimeout = soTimeout / 20;
  -            keepAliveLeft = 1;
  -        }
  -        
  -        if (soTimeout != oldSoTimeout) {
  -            try {
  -                Socket.timeoutSet(socket, soTimeout);
  -            } catch (Throwable t) {
  -                log.debug("Error setting timeout", t);
  -                error = true;
  -            }
  -        }*/
  -
           boolean keptAlive = false;
           boolean openSocket = false;
   
  
  
  
  1.3       +8 -28     jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalAprInputBuffer.java
  
  Index: InternalAprInputBuffer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalAprInputBuffer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- InternalAprInputBuffer.java	14 Apr 2005 20:09:16 -0000	1.2
  +++ InternalAprInputBuffer.java	15 Apr 2005 13:46:11 -0000	1.3
  @@ -387,26 +387,16 @@
           // Skipping blank lines
           //
   
  -        if (keptAlive && pos >= lastValid) {
  -            Socket.timeoutSet(socket, 0);
  -        }
  -
           byte chr = 0;
           do {
   
               // Read new bytes if needed
               if (pos >= lastValid) {
                   if (keptAlive) {
  -                    // Set socket in non blocking mode and try to read
  -                    int attempts = 0;
  -                    try {
  -                        while (attempts < 3 && !fill()) {
  -                            Thread.sleep(2);
  -                            attempts++;
  -                        }
  -                    } catch (InterruptedException e) {
  -                        // FIXME: do something
  -                        e.printStackTrace();
  +                    // Do a simple read with a short timeout
  +                    int nRead = Socket.recvt(socket, buf, pos, buf.length - lastValid, 50000);
  +                    if (nRead > 0) {
  +                        lastValid = pos + nRead;
                       }
                       if (pos >= lastValid) {
                           return false;
  @@ -427,26 +417,16 @@
           start = pos;
   
           if (keptAlive && pos >= lastValid) {
  -            // Set socket in non blocking mode and try to read
  -            int attempts = 0;
  -            try {
  -                while (attempts < 3 && !fill()) {
  -                    Thread.sleep(2);
  -                    attempts++;
  -                }
  -            } catch (InterruptedException e) {
  -                // FIXME: do something
  -                e.printStackTrace();
  +            // Do a simple read with a short timeout
  +            int nRead = Socket.recvt(socket, buf, pos, buf.length - lastValid, 50000);
  +            if (nRead > 0) {
  +                lastValid = pos + nRead;
               }
               if (pos >= lastValid) {
                   return false;
               }
           }
   
  -        if (keptAlive) {
  -            Socket.timeoutSet(socket, timeout);
  -        }
  -        
           //
           // Reading the method name
           // Method name is always US-ASCII
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org