Return-Path: Delivered-To: apmail-jakarta-tomcat-dev-archive@www.apache.org Received: (qmail 51457 invoked from network); 23 May 2005 06:04:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 23 May 2005 06:04:15 -0000 Received: (qmail 4986 invoked by uid 500); 23 May 2005 06:04:04 -0000 Delivered-To: apmail-jakarta-tomcat-dev-archive@jakarta.apache.org Received: (qmail 4940 invoked by uid 500); 23 May 2005 06:04:04 -0000 Mailing-List: contact tomcat-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Tomcat Developers List" Reply-To: "Tomcat Developers List" Delivered-To: mailing list tomcat-dev@jakarta.apache.org Received: (qmail 4923 invoked by uid 500); 23 May 2005 06:04:03 -0000 Received: (qmail 4920 invoked by uid 99); 23 May 2005 06:04:03 -0000 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Sun, 22 May 2005 23:04:03 -0700 Received: (qmail 51410 invoked by uid 1526); 23 May 2005 06:04:02 -0000 Date: 23 May 2005 06:04:02 -0000 Message-ID: <20050523060402.51409.qmail@minotaur.apache.org> From: mturk@apache.org To: jakarta-tomcat-connectors-cvs@apache.org Subject: cvs commit: jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net AprEndpoint.java X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N mturk 2005/05/22 23:04:02 Modified: util/java/org/apache/tomcat/util/net AprEndpoint.java Log: Fix checking for return value from Poll.poll. Now when the native is fixed the correct value is returned in case of timeup. Also reset the addCount if the poller is recycled. Revision Changes Path 1.30 +24 -12 jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java Index: AprEndpoint.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- AprEndpoint.java 18 May 2005 16:01:46 -0000 1.29 +++ AprEndpoint.java 23 May 2005 06:04:02 -0000 1.30 @@ -780,6 +780,7 @@ keepAliveCount = 0; addS = new long[pollerSize]; addP = new long[pollerSize]; + addCount = 0; } /** @@ -872,12 +873,17 @@ getWorkerThread().assign(desc[n*4+1], desc[n*4+2]); } maintainTime += pollTime; - } else if (rv < -1) { - log.error(sm.getString("endpoint.poll.fail")); - // Handle poll critical failure - synchronized (this) { - destroy(); - init(); + } else if (rv < 0) { + /* Any non timeup error is critical */ + if (Status.APR_STATUS_IS_TIMEUP(-rv)) + rv = 0; + else { + log.error(sm.getString("endpoint.poll.fail")); + // Handle poll critical failure + synchronized (this) { + destroy(); + init(); + } } } if (rv == 0 || maintainTime > 1000000L) { @@ -1252,14 +1258,20 @@ getWorkerThread().assign(desc[n*4+1], state.pool); } } - } else if (rv < -1) { - log.error(sm.getString("endpoint.poll.fail")); - // Handle poll critical failure - synchronized (this) { - destroy(); - init(); + } else if (rv < 0) { + /* Any non timeup error is critical */ + if (Status.APR_STATUS_IS_TIMEUP(-rv)) + rv = 0; + else { + log.error(sm.getString("endpoint.poll.fail")); + // Handle poll critical failure + synchronized (this) { + destroy(); + init(); + } } } + /* TODO: See if we need to call the maintain for sendfile poller */ } catch (Throwable t) { log.error(sm.getString("endpoint.poll.error"), t); } --------------------------------------------------------------------- To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org