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 2006/03/21 16:49:51 UTC
svn commit: r387554 -
/tomcat/connectors/trunk/util/java/org/apache/tomcat/util/net/AprEndpoint.java
Author: remm
Date: Tue Mar 21 07:49:50 2006
New Revision: 387554
URL: http://svn.apache.org/viewcvs?rev=387554&view=rev
Log:
- Apparently some OSes can also use EINTR as a semi normal result.
- Harmonize sendfile poller handling.
Modified:
tomcat/connectors/trunk/util/java/org/apache/tomcat/util/net/AprEndpoint.java
Modified: tomcat/connectors/trunk/util/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: http://svn.apache.org/viewcvs/tomcat/connectors/trunk/util/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=387554&r1=387553&r2=387554&view=diff
==============================================================================
--- tomcat/connectors/trunk/util/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/connectors/trunk/util/java/org/apache/tomcat/util/net/AprEndpoint.java Tue Mar 21 07:49:50 2006
@@ -1076,9 +1076,9 @@
getWorkerThread().assign(desc[n*2+1]);
}
} else if (rv < 0) {
- /* Any non timeup error is critical */
- if (-rv != Status.TIMEUP) {
- int errn = -rv;
+ int errn = -rv;
+ /* Any non timeup or interrupted error is critical */
+ if ((errn != Status.TIMEUP) && (errn != Status.EINTR)) {
if (errn > Status.APR_OS_START_USERERR) {
errn -= Status.APR_OS_START_USERERR;
}
@@ -1088,6 +1088,7 @@
destroy();
init();
}
+ continue;
}
}
if (soTimeout > 0 && maintainTime > 1000000L) {
@@ -1470,16 +1471,19 @@
}
}
} else if (rv < 0) {
- /* Any non timeup error is critical */
- if (-rv == Status.TIMEUP)
- rv = 0;
- else {
- log.error(sm.getString("endpoint.poll.fail", "" + (-rv), Error.strerror(-rv)));
+ int errn = -rv;
+ /* Any non timeup or interrupted error is critical */
+ if ((errn != Status.TIMEUP) && (errn != Status.EINTR)) {
+ if (errn > Status.APR_OS_START_USERERR) {
+ errn -= Status.APR_OS_START_USERERR;
+ }
+ log.error(sm.getString("endpoint.poll.fail", "" + errn, Error.strerror(errn)));
// Handle poll critical failure
synchronized (this) {
destroy();
init();
}
+ continue;
}
}
/* TODO: See if we need to call the maintain for sendfile poller */
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org