Cleanup after commit fc1cdc991e71f504cf0d9fdb5aa60034fda04a28
This commit is contained in:
parent
13a8ebade4
commit
eed6791f8e
@ -39,7 +39,6 @@ import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.ConcurrentModificationException;
|
||||
import java.util.Iterator;
|
||||
import java.util.Queue;
|
||||
import java.util.Set;
|
||||
@ -339,35 +338,32 @@ public final class NioEventLoop extends SingleThreadEventLoop {
|
||||
|
||||
// Register all channels to the new Selector.
|
||||
int nChannels = 0;
|
||||
for (;;) {
|
||||
for (SelectionKey key: oldSelector.keys()) {
|
||||
Object a = key.attachment();
|
||||
try {
|
||||
if (!key.isValid() || key.channel().keyFor(newSelector) != null) {
|
||||
continue;
|
||||
}
|
||||
for (SelectionKey key: oldSelector.keys()) {
|
||||
Object a = key.attachment();
|
||||
try {
|
||||
if (!key.isValid() || key.channel().keyFor(newSelector) != null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int interestOps = key.interestOps();
|
||||
key.cancel();
|
||||
SelectionKey newKey = key.channel().register(newSelector, interestOps, a);
|
||||
if (a instanceof AbstractNioChannel) {
|
||||
// Update SelectionKey
|
||||
((AbstractNioChannel) a).selectionKey = newKey;
|
||||
}
|
||||
nChannels ++;
|
||||
} catch (Exception e) {
|
||||
logger.warn("Failed to re-register a Channel to the new Selector.", e);
|
||||
if (a instanceof AbstractNioChannel) {
|
||||
AbstractNioChannel ch = (AbstractNioChannel) a;
|
||||
ch.unsafe().close(ch.unsafe().voidPromise());
|
||||
} else {
|
||||
@SuppressWarnings("unchecked")
|
||||
NioTask<SelectableChannel> task = (NioTask<SelectableChannel>) a;
|
||||
invokeChannelUnregistered(task, key, e);
|
||||
}
|
||||
int interestOps = key.interestOps();
|
||||
key.cancel();
|
||||
SelectionKey newKey = key.channel().register(newSelector, interestOps, a);
|
||||
if (a instanceof AbstractNioChannel) {
|
||||
// Update SelectionKey
|
||||
((AbstractNioChannel) a).selectionKey = newKey;
|
||||
}
|
||||
nChannels ++;
|
||||
} catch (Exception e) {
|
||||
logger.warn("Failed to re-register a Channel to the new Selector.", e);
|
||||
if (a instanceof AbstractNioChannel) {
|
||||
AbstractNioChannel ch = (AbstractNioChannel) a;
|
||||
ch.unsafe().close(ch.unsafe().voidPromise());
|
||||
} else {
|
||||
@SuppressWarnings("unchecked")
|
||||
NioTask<SelectableChannel> task = (NioTask<SelectableChannel>) a;
|
||||
invokeChannelUnregistered(task, key, e);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
selector = newSelector;
|
||||
@ -644,10 +640,6 @@ public final class NioEventLoop extends SingleThreadEventLoop {
|
||||
// to a spin loop
|
||||
if ((readyOps & (SelectionKey.OP_READ | SelectionKey.OP_ACCEPT)) != 0 || readyOps == 0) {
|
||||
unsafe.read();
|
||||
if (!ch.isOpen()) {
|
||||
// Connection already closed - no need to handle write.
|
||||
return;
|
||||
}
|
||||
}
|
||||
} catch (CancelledKeyException ignored) {
|
||||
unsafe.close(unsafe.voidPromise());
|
||||
|
Loading…
x
Reference in New Issue
Block a user