From f60698a538e007e1e31c2fa16fa5fd7e4ccda293 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 | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 c151806c66..6a7b3162bb 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 @@ -15,8 +15,8 @@ */ package io.netty.channel.epoll; -import io.netty.channel.EventLoop; 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; @@ -50,7 +50,7 @@ public final class EpollEventLoopGroup extends MultithreadEventLoopGroup { */ @SuppressWarnings("deprecation") public EpollEventLoopGroup(int nThreads, SelectStrategyFactory selectStrategyFactory) { - this(nThreads, null, selectStrategyFactory); + this(nThreads, (ThreadFactory) null, selectStrategyFactory); } /** @@ -61,6 +61,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}. */ @@ -93,6 +97,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.