Author: markt Date: Tue Feb 3 09:14:50 2015 New Revision: 1656650 URL: http://svn.apache.org/r1656650 Log: Remove the distinction between internal and external write registration to avoid multiple write registrations.
Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java tomcat/trunk/java/org/apache/coyote/Response.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java?rev=1656650&r1=1656649&r2=1656650&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java Tue Feb 3 09:14:50 2015 @@ -673,6 +673,6 @@ public class OutputBuffer extends Writer } public void checkRegisterForWrite() { - coyoteResponse.checkRegisterForWrite(true); + coyoteResponse.checkRegisterForWrite(); } } Modified: tomcat/trunk/java/org/apache/coyote/Response.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/Response.java?rev=1656650&r1=1656649&r2=1656650&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/Response.java (original) +++ tomcat/trunk/java/org/apache/coyote/Response.java Tue Feb 3 09:14:50 2015 @@ -607,16 +607,16 @@ public final class Response { fireListener = true; return false; } - ready = checkRegisterForWrite(false); + ready = checkRegisterForWrite(); fireListener = !ready; } return ready; } - public boolean checkRegisterForWrite(boolean internal) { + public boolean checkRegisterForWrite() { AtomicBoolean ready = new AtomicBoolean(false); synchronized (nonBlockingStateLock) { - if (!registeredForWrite || internal) { + if (!registeredForWrite) { action(ActionCode.NB_WRITE_INTEREST, ready); registeredForWrite = !ready.get(); } Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1656650&r1=1656649&r2=1656650&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Tue Feb 3 09:14:50 2015 @@ -617,7 +617,7 @@ public class AjpProcessor extends Abstra if (hasDataToWrite()) { // There is data to write but go via Response to // maintain a consistent view of non-blocking state - response.checkRegisterForWrite(true); + response.checkRegisterForWrite(); return SocketState.LONG; } } Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1656650&r1=1656649&r2=1656650&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Tue Feb 3 09:14:50 2015 @@ -1738,7 +1738,7 @@ public class Http11Processor extends Abs if (outputBuffer.flushBuffer(false)) { // There is data to write but go via Response to // maintain a consistent view of non-blocking state - response.checkRegisterForWrite(true); + response.checkRegisterForWrite(); return SocketState.LONG; } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org