From f8f1efc3badc0d3679ee40f46bfd83d37a7b5c5a Mon Sep 17 00:00:00 2001 From: Scott Mitchell Date: Tue, 19 Apr 2016 10:02:01 -0700 Subject: [PATCH] EpollEventLoopGroup support Executor Motivation: NioEventLoopGroup supports constructors which take an executor but EpollEventLoopGroup does not. EPOLL should be consistent with NIO where ever possible. Modifications: - Add constructors to EpollEventLoopGroup which accept an Executor as a parameter Result: EpollEventLoopGroup is more consistent with NioEventLoopGroup Fixes https://github.com/netty/netty/issues/5161 --- .../io/netty/channel/epoll/EpollEventLoopGroup.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/transport-native-epoll/src/main/java/io/netty/channel/epoll/EpollEventLoopGroup.java b/transport-native-epoll/src/main/java/io/netty/channel/epoll/EpollEventLoopGroup.java index 2922625eb0..f685d5db88 100644 --- a/transport-native-epoll/src/main/java/io/netty/channel/epoll/EpollEventLoopGroup.java +++ b/transport-native-epoll/src/main/java/io/netty/channel/epoll/EpollEventLoopGroup.java @@ -16,6 +16,7 @@ package io.netty.channel.epoll; import io.netty.channel.DefaultSelectStrategyFactory; +import io.netty.channel.EventLoop; import io.netty.channel.EventLoopGroup; import io.netty.channel.MultithreadEventLoopGroup; import io.netty.channel.SelectStrategyFactory; @@ -48,7 +49,7 @@ public final class EpollEventLoopGroup extends MultithreadEventLoopGroup { */ @SuppressWarnings("deprecation") public EpollEventLoopGroup(int nThreads, SelectStrategyFactory selectStrategyFactory) { - this(nThreads, null, selectStrategyFactory); + this(nThreads, (ThreadFactory) null, selectStrategyFactory); } /** @@ -59,6 +60,10 @@ public final class EpollEventLoopGroup extends MultithreadEventLoopGroup { this(nThreads, threadFactory, 0); } + public EpollEventLoopGroup(int nThreads, Executor executor) { + this(nThreads, executor, DefaultSelectStrategyFactory.INSTANCE); + } + /** * Create a new instance using the specified number of threads and the given {@link ThreadFactory}. */ @@ -91,6 +96,10 @@ public final class EpollEventLoopGroup extends MultithreadEventLoopGroup { super(nThreads, threadFactory, maxEventsAtOnce, selectStrategyFactory); } + public EpollEventLoopGroup(int nThreads, Executor executor, SelectStrategyFactory selectStrategyFactory) { + super(nThreads, executor, 0, selectStrategyFactory); + } + /** * Sets the percentage of the desired amount of time spent for I/O in the child event loops. The default value is * {@code 50}, which means the event loop will try to spend the same amount of time for I/O as for non-I/O tasks.