Author: fhanik
Date: Fri Jun 8 03:52:49 2007
New Revision: 545474
URL: http://svn.apache.org/viewvc?view=rev&rev=545474
Log:
Cancel the blocking key only, no need to cancel anything else here
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/NioBlockingSelector.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioBlockingSelector.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioBlockingSelector.java?view=diff&rev=545474&r1=545473&r2=545474
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioBlockingSelector.java
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioBlockingSelector.java Fri
Jun 8 03:52:49 2007
@@ -122,7 +122,7 @@
} finally {
poller.remove(att,SelectionKey.OP_WRITE);
if (timedout && key != null) {
- cancelKey(socket, key);
+ poller.cancelKey(socket, key);
}
}
return written;
@@ -182,26 +182,29 @@
} finally {
poller.remove(att,SelectionKey.OP_READ);
if (timedout && key != null) {
- cancelKey(socket,key);
+ poller.cancelKey(socket,key);
}
}
return read;
}
- private static void cancelKey(final NioChannel socket, final SelectionKey
key) {
- socket.getPoller().addEvent(
- new Runnable() {
- public void run() {
- socket.getPoller().cancelledKey(key,SocketStatus.ERROR,false);
- }
- });
- }
protected class BlockPoller extends Thread {
protected boolean run = true;
protected Selector selector = null;
protected ConcurrentLinkedQueue events = new ConcurrentLinkedQueue();
public void disable() { run = false; selector.wakeup();}
+
+ public void cancelKey(final NioChannel socket, final SelectionKey key)
{
+ Runnable r = new Runnable() {
+ public void run() {
+ key.cancel();
+ }
+ };
+ events.offer(r);
+ selector.wakeup();
+ }
+
public void add(final KeyAttachment key, final int ops) {
Runnable r = new Runnable() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]