Author: markt Date: Thu Jan 8 13:10:26 2015 New Revision: 1650275 URL: http://svn.apache.org/r1650275 Log: Push register write-interest down into the SocketWrapper
Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java?rev=1650275&r1=1650274&r2=1650275&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/InternalAprOutputBuffer.java Thu Jan 8 13:10:26 2015 @@ -14,14 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.coyote.http11; import java.io.IOException; import java.nio.ByteBuffer; import org.apache.coyote.Response; -import org.apache.tomcat.util.net.AprEndpoint; import org.apache.tomcat.util.net.SocketWrapperBase; /** @@ -83,8 +81,7 @@ public class InternalAprOutputBuffer ext @Override - protected void registerWriteInterest() { - ((AprEndpoint) socketWrapper.getEndpoint()).getPoller().add( - socketWrapper.getSocket().longValue(), -1, false, true); + protected void registerWriteInterest() throws IOException { + socketWrapper.registerWriteInterest(); } } Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java?rev=1650275&r1=1650274&r2=1650275&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/InternalNioOutputBuffer.java Thu Jan 8 13:10:26 2015 @@ -14,15 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.coyote.http11; import java.io.IOException; -import java.nio.channels.SelectionKey; import org.apache.coyote.Response; import org.apache.tomcat.util.net.NioChannel; -import org.apache.tomcat.util.net.NioEndpoint.NioSocketWrapper; import org.apache.tomcat.util.net.SocketWrapperBase; /** @@ -78,6 +75,6 @@ public class InternalNioOutputBuffer ext @Override protected void registerWriteInterest() throws IOException { - ((NioSocketWrapper) socketWrapper).getPoller().add(socketWrapper.getSocket(), SelectionKey.OP_WRITE); + socketWrapper.registerWriteInterest(); } } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1650275&r1=1650274&r2=1650275&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Thu Jan 8 13:10:26 2015 @@ -2615,6 +2615,12 @@ public class AprEndpoint extends Abstrac @Override + public void registerWriteInterest() throws IOException { + ((AprEndpoint) getEndpoint()).getPoller().add(getSocket().longValue(), -1, false, true); + } + + + @Override public void regsiterForEvent(boolean read, boolean write) { ((AprEndpoint) getEndpoint()).getPoller().add( getSocket().longValue(), -1, read, write); Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1650275&r1=1650274&r2=1650275&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Thu Jan 8 13:10:26 2015 @@ -1070,10 +1070,17 @@ public class Nio2Endpoint extends Abstra @Override + public void registerWriteInterest() throws IOException { + // TODO Auto-generated method stub + } + + + @Override public void regsiterForEvent(boolean read, boolean write) { // NO-OP. Appropriate handlers will already have been registered. } + @Override public boolean flush(boolean block) throws IOException { // TODO Auto-generated method stub Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1650275&r1=1650274&r2=1650275&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Thu Jan 8 13:10:26 2015 @@ -1547,6 +1547,13 @@ public class NioEndpoint extends Abstrac return written; } + + @Override + public void registerWriteInterest() throws IOException { + getPoller().add(getSocket(), SelectionKey.OP_WRITE); + } + + @Override public void regsiterForEvent(boolean read, boolean write) { SelectionKey key = getSocket().getIOChannel().keyFor( Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1650275&r1=1650274&r2=1650275&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Thu Jan 8 13:10:26 2015 @@ -262,6 +262,7 @@ public abstract class SocketWrapperBase< public abstract int read(boolean block, byte[] b, int off, int len) throws IOException; public abstract boolean isReady() throws IOException; + /** * Return input that has been read to the input buffer for re-reading by the * correct component. There are times when a component may read more data @@ -404,6 +405,7 @@ public abstract class SocketWrapperBase< holder.getBuf().put(buf,offset,length); } + public abstract void registerWriteInterest() throws IOException; public abstract void regsiterForEvent(boolean read, boolean write); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org