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

Reply via email to