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