You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2006/07/14 07:14:31 UTC

svn commit: r421808 - /tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java

Author: fhanik
Date: Thu Jul 13 22:14:31 2006
New Revision: 421808

URL: http://svn.apache.org/viewvc?rev=421808&view=rev
Log:
While this change made my linux box go faster, I could constantly crash my windows VM, so it will have to wait

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java

Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=421808&r1=421807&r2=421808&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Thu Jul 13 22:14:31 2006
@@ -39,7 +39,6 @@
 import org.apache.tomcat.jni.SSL;
 import org.apache.tomcat.jni.Status;
 import org.apache.tomcat.util.res.StringManager;
-import java.util.concurrent.ConcurrentLinkedQueue;
 
 /**
  * NIO tailored thread pool, providing the following services:
@@ -966,7 +965,7 @@
     public class Poller implements Runnable {
 
         protected Selector selector;
-        protected ConcurrentLinkedQueue<Runnable> events = new ConcurrentLinkedQueue<Runnable>();
+        protected LinkedList<Runnable> events = new LinkedList<Runnable>();
         protected boolean close = false;
         protected long nextExpiration = 0;//optimize expiration handling
 
@@ -1007,7 +1006,9 @@
         }
         
         public void addEvent(Runnable event) {
-            events.add(event);
+            synchronized (events) {
+                events.add(event);
+            }
             selector.wakeup();
         }
 
@@ -1043,13 +1044,16 @@
         }
 
         public void events() {
-            Runnable r = null;
-            while ( (events.size() > 0) && (r = events.poll()) != null ) {
-                try {
-                    r.run();
-                } catch ( Exception x ) {
-                    log.error("",x);
+            synchronized (events) {
+                Runnable r = null;
+                while ( (events.size() > 0) && (r = events.removeFirst()) != null ) {
+                    try {
+                        r.run();
+                    } catch ( Exception x ) {
+                        log.error("",x);
+                    }
                 }
+                events.clear();
             }
         }
         
@@ -1066,7 +1070,9 @@
                 }
     
             };
-            events.add(r);
+            synchronized (events) {
+                events.add(r);
+            }
             selector.wakeup();
         }
         



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