diff --git a/transport-native-epoll/src/main/java/io/netty/channel/epoll/EpollEventLoop.java b/transport-native-epoll/src/main/java/io/netty/channel/epoll/EpollEventLoop.java index 409284a96d..4b52804e9b 100644 --- a/transport-native-epoll/src/main/java/io/netty/channel/epoll/EpollEventLoop.java +++ b/transport-native-epoll/src/main/java/io/netty/channel/epoll/EpollEventLoop.java @@ -289,17 +289,11 @@ final class EpollEventLoop extends SingleThreadEventLoop { } private void closeAll() { - int ready = Native.epollWait(epollFd, events, 0); - Collection channels = new ArrayList(ready); + Native.epollWait(epollFd, events, 0); + Collection channels = new ArrayList(ids.size()); - for (int i = 0; i < ready; i++) { - final long ev = events[i]; - - int id = (int) (ev >> 32L); - AbstractEpollChannel ch = ids.get(id); - if (ch != null) { - channels.add(ids.get(id)); - } + for (AbstractEpollChannel ch: ids.values()) { + channels.add(ch); } for (AbstractEpollChannel ch: channels) {