You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by la...@apache.org on 2002/01/08 01:48:20 UTC
cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/server Http10Interceptor.java
larryi 02/01/07 16:48:20
Modified: src/share/org/apache/tomcat/modules/server
Http10Interceptor.java
Log:
Added a delaySocketClose attribute that when true, executes a
Thread.sleep(0) to force a thread switch just prior to closing the socket.
This was needed by Cactus to avoid "Socket reset by peer" errors on a
high powered Windows XP system.
Also added an setSoLinger(100) to help ensure the output is delivered.
Revision Changes Path
1.29 +17 -0 jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Http10Interceptor.java
Index: Http10Interceptor.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Http10Interceptor.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- Http10Interceptor.java 7 Dec 2001 04:38:26 -0000 1.28
+++ Http10Interceptor.java 8 Jan 2002 00:48:19 -0000 1.29
@@ -100,9 +100,11 @@
{
private int timeout = 300000; // 5 minutes as in Apache HTTPD server
private String reportedname;
+ private boolean delaySocketClose = false;
public Http10Interceptor() {
super();
+ super.setSoLinger( 100 );
// defaults:
this.setPort( 8080 );
}
@@ -120,6 +122,11 @@
public void setReportedname( String reportedName) {
reportedname = reportedName;
}
+
+ public void setDelaySocketClose(boolean b) {
+ delaySocketClose=b;
+ }
+
// -------------------- Handler implementation --------------------
public void setServer( Object o ) {
this.cm=(ContextManager)o;
@@ -197,6 +204,16 @@
log( "Error reading request, ignored", e, Log.ERROR);
}
finally {
+ // When running tests against Tomcat on the same
+ // system, we may need to force a thread switch
+ // before closing the socket to give the other
+ // end of the connection a chance to run
+ if( delaySocketClose ) {
+ try {
+ Thread.sleep(0);
+ } catch (InterruptedException ie) { /* ignore */ }
+ }
+
// recycle kernel sockets ASAP
// XXX didn't honor HTTP/1.0 KeepAlive, should be fixed
try { if (socket != null) socket.close (); }
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>