Author: markt
Date: Wed Feb 18 12:14:24 2015
New Revision: 1660609

URL: http://svn.apache.org/r1660609
Log:
registered is guarded by registeredLock so there is no need for it to be 
volatile.
Simplify the process of triggering the first call to onWritePossible

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java
    
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java?rev=1660609&r1=1660608&r2=1660609&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessor.java 
Wed Feb 18 12:14:24 2015
@@ -99,7 +99,6 @@ public class UpgradeProcessor implements
     public final SocketState upgradeDispatch(SocketStatus status) {
         if (status == SocketStatus.OPEN_READ) {
             upgradeServletInputStream.onDataAvailable();
-            upgradeServletOutputStream.checkWriteDispatch();
         } else if (status == SocketStatus.OPEN_WRITE) {
             upgradeServletOutputStream.onWritePossible();
         } else if (status == SocketStatus.STOP) {

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java?rev=1660609&r1=1660608&r2=1660609&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
 (original)
+++ 
tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeServletOutputStream.java
 Wed Feb 18 12:14:24 2015
@@ -55,12 +55,7 @@ public class UpgradeServletOutputStream
     private volatile WriteListener listener = null;
 
     // Guarded by registeredLock
-    private volatile boolean registered = false;
-
-    // Use to track if a dispatch needs to be arranged to trigger the first 
call
-    // to onWritePossible. If the socket gets registered for write while this 
is
-    // set then this will be ignored.
-    private volatile boolean writeDispatchRequired = false;
+    private boolean registered = false;
 
     private volatile ClassLoader applicationLoader = null;
 
@@ -110,7 +105,10 @@ public class UpgradeServletOutputStream
         }
         // Container is responsible for first call to onWritePossible() but 
only
         // need to do this if setting the listener for the first time.
-        writeDispatchRequired = true;
+        synchronized (registeredLock) {
+            registered = true;
+            socketWrapper.addDispatch(DispatchType.NON_BLOCKING_WRITE);
+        }
 
         this.listener = listener;
         this.applicationLoader = 
Thread.currentThread().getContextClassLoader();
@@ -265,16 +263,4 @@ public class UpgradeServletOutputStream
             }
         }
     }
-
-
-    void checkWriteDispatch() {
-        synchronized (registeredLock) {
-            if (writeDispatchRequired) {
-                writeDispatchRequired = false;
-                if (!registered) {
-                    socketWrapper.addDispatch(DispatchType.NON_BLOCKING_WRITE);
-                }
-            }
-        }
-    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to