From d4d6d1b9dfad1f3ad401ae2ed521232eb6efde1d Mon Sep 17 00:00:00 2001 From: Sotr Date: Fri, 22 Mar 2019 00:13:49 +0800 Subject: [PATCH] Add KQueue channel support --- .../java/net/minecraft/server/ServerConnection.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/net/minecraft/server/ServerConnection.java b/src/main/java/net/minecraft/server/ServerConnection.java index baabcd19c..2b5ad0683 100644 --- a/src/main/java/net/minecraft/server/ServerConnection.java +++ b/src/main/java/net/minecraft/server/ServerConnection.java @@ -12,6 +12,8 @@ import io.netty.channel.EventLoopGroup; import io.netty.channel.epoll.Epoll; import io.netty.channel.epoll.EpollEventLoopGroup; import io.netty.channel.epoll.EpollServerSocketChannel; +import io.netty.channel.kqueue.KQueue; +import io.netty.channel.kqueue.KQueueServerSocketChannel; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.ServerSocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; @@ -35,6 +37,11 @@ public class ServerConnection { public static final LazyInitVar b = new LazyInitVar<>(() -> { return new EpollEventLoopGroup(0, (new ThreadFactoryBuilder()).setNameFormat("Netty Epoll Server IO #%d").setDaemon(true).build()); }); + // Akarin start + public static final LazyInitVar kQueue = new LazyInitVar<>(() -> { + return new EpollEventLoopGroup(0, (new ThreadFactoryBuilder()).setNameFormat("Netty KQueue Server IO #%d").setDaemon(true).build()); + }); + // Akarin end private final MinecraftServer e; public volatile boolean c; private final List f = Collections.synchronizedList(Lists.newArrayList()); @@ -65,6 +72,12 @@ public class ServerConnection { oclass = EpollServerSocketChannel.class; lazyinitvar = ServerConnection.b; ServerConnection.d.info("Using epoll channel type"); + // Akarin start + } else if (KQueue.isAvailable()) { + oclass = KQueueServerSocketChannel.class; + lazyinitvar = ServerConnection.kQueue; + ServerConnection.d.info("Using kqueue channel type"); + // Akarin end } else { oclass = NioServerSocketChannel.class; lazyinitvar = ServerConnection.a;