You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2012/12/23 20:51:28 UTC

svn commit: r1425517 - /tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java

Author: markt
Date: Sun Dec 23 19:51:27 2012
New Revision: 1425517

URL: http://svn.apache.org/viewvc?rev=1425517&view=rev
Log:
Simplify. The Poller event queue always only contains PollerEvents.

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

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=1425517&r1=1425516&r2=1425517&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Sun Dec 23 19:51:27 2012
@@ -838,7 +838,7 @@ public class NioEndpoint extends Abstrac
     public class Poller implements Runnable {
 
         private Selector selector;
-        private final SynchronizedQueue<Runnable> events =
+        private final SynchronizedQueue<PollerEvent> events =
                 new SynchronizedQueue<>();
 
         private volatile boolean close = false;
@@ -872,7 +872,7 @@ public class NioEndpoint extends Abstrac
             selector.wakeup();
         }
 
-        private void addEvent(Runnable event) {
+        private void addEvent(PollerEvent event) {
             events.offer(event);
             if ( wakeupCounter.incrementAndGet() == 0 ) selector.wakeup();
         }
@@ -911,16 +911,14 @@ public class NioEndpoint extends Abstrac
         public boolean events() {
             boolean result = false;
 
-            Runnable r = null;
-            while ( (r = events.poll()) != null ) {
+            PollerEvent pe = null;
+            while ( (pe = events.poll()) != null ) {
                 result = true;
                 try {
-                    r.run();
-                    if ( r instanceof PollerEvent ) {
-                        ((PollerEvent)r).reset();
-                        if (running && !paused) {
-                            eventCache.push((PollerEvent)r);
-                        }
+                    pe.run();
+                    pe.reset();
+                    if (running && !paused) {
+                        eventCache.push(pe);
                     }
                 } catch ( Throwable x ) {
                     log.error("",x);
@@ -930,8 +928,12 @@ public class NioEndpoint extends Abstrac
             return result;
         }
 
-        public void register(final NioChannel socket)
-        {
+        /**
+         * Registers a newly created socket with the poller.
+         *
+         * @param socket    The newly created socket
+         */
+        public void register(final NioChannel socket) {
             socket.setPoller(this);
             KeyAttachment key = keyCache.pop();
             final KeyAttachment ka = key!=null?key:new KeyAttachment(socket);
@@ -943,6 +945,7 @@ public class NioEndpoint extends Abstrac
             else r.reset(socket,ka,OP_REGISTER);
             addEvent(r);
         }
+
         public void cancelledKey(SelectionKey key, SocketStatus status) {
             try {
                 if ( key == null ) return;//nothing to do



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