Author: markt Date: Tue Jun 2 11:23:56 2015 New Revision: 1683081 URL: http://svn.apache.org/r1683081 Log: Avid concurrent writes
Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1683081&r1=1683080&r2=1683081&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Tue Jun 2 11:23:56 2015 @@ -355,10 +355,12 @@ public class Http2UpgradeHandler extends ByteUtil.setThreeBytes(payloadLength, 0, payload.length); try { - socketWrapper.write(true, payloadLength, 0, payloadLength.length); - socketWrapper.write(true, GOAWAY, 0, GOAWAY.length); - socketWrapper.write(true, payload, 0, payload.length); - socketWrapper.flush(true); + synchronized (socketWrapper) { + socketWrapper.write(true, payloadLength, 0, payloadLength.length); + socketWrapper.write(true, GOAWAY, 0, GOAWAY.length); + socketWrapper.write(true, payload, 0, payload.length); + socketWrapper.flush(true); + } } catch (IOException ioe) { // Ignore. GOAWAY is sent on a best efforts basis and the original // error has already been logged. @@ -440,9 +442,11 @@ public class Http2UpgradeHandler extends private void processWrites() throws IOException { - if (socketWrapper.flush(false)) { - socketWrapper.registerWriteInterest(); - return; + synchronized (socketWrapper) { + if (socketWrapper.flush(false)) { + socketWrapper.registerWriteInterest(); + return; + } } } @@ -761,9 +765,11 @@ public class Http2UpgradeHandler extends @Override public void pingReceive(byte[] payload) throws IOException { // Echo it back - socketWrapper.write(true, PING_ACK, 0, PING_ACK.length); - socketWrapper.write(true, payload, 0, payload.length); - socketWrapper.flush(true); + synchronized (socketWrapper) { + socketWrapper.write(true, PING_ACK, 0, PING_ACK.length); + socketWrapper.write(true, payload, 0, payload.length); + socketWrapper.flush(true); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org