mirror of
https://github.com/PaperMC/Waterfall.git
synced 2025-02-14 02:41:38 +01:00
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing BungeeCord Changes: 19918c69 #3594: Fix missing ComponentStyleSerializer
88 lines
4.4 KiB
Diff
88 lines
4.4 KiB
Diff
From 092cd796c78358364ed05ae54e4b3c875879393f Mon Sep 17 00:00:00 2001
|
|
From: kamcio96 <k.nadworski@icloud.com>
|
|
Date: Mon, 14 Mar 2016 16:07:20 -0700
|
|
Subject: [PATCH] Use a worker and a boss event loop group.
|
|
|
|
Merges the rest of https://github.com/SpigotMC/BungeeCord/pull/1706 by @kamcio96 along with b8845c4edbae46bb66f6adda338330a1d4032057
|
|
|
|
This is proper practice for netty.
|
|
|
|
diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java
|
|
index a64d916a..3501a4e9 100644
|
|
--- a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java
|
|
+++ b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java
|
|
@@ -122,7 +122,7 @@ public class BungeeCord extends ProxyServer
|
|
* Localization formats.
|
|
*/
|
|
private Map<String, Format> messageFormats;
|
|
- public EventLoopGroup eventLoops;
|
|
+ public EventLoopGroup bossEventLoopGroup, workerEventLoopGroup;
|
|
/**
|
|
* locations.yml save thread.
|
|
*/
|
|
@@ -273,7 +273,8 @@ public class BungeeCord extends ProxyServer
|
|
ResourceLeakDetector.setLevel( ResourceLeakDetector.Level.DISABLED ); // Eats performance
|
|
}
|
|
|
|
- eventLoops = PipelineUtils.newEventLoopGroup( 0, new ThreadFactoryBuilder().setNameFormat( "Netty IO Thread #%1$d" ).build() );
|
|
+ bossEventLoopGroup = PipelineUtils.newEventLoopGroup( 0, new ThreadFactoryBuilder().setNameFormat( "Netty Boss IO Thread #%1$d" ).build() );
|
|
+ workerEventLoopGroup = PipelineUtils.newEventLoopGroup( 0, new ThreadFactoryBuilder().setNameFormat( "Netty Worker IO Thread #%1$d" ).build() );
|
|
|
|
File moduleDirectory = new File( "modules" );
|
|
moduleManager.load( this, moduleDirectory );
|
|
@@ -362,7 +363,7 @@ public class BungeeCord extends ProxyServer
|
|
.option( ChannelOption.SO_REUSEADDR, true ) // TODO: Move this elsewhere!
|
|
.childAttr( PipelineUtils.LISTENER, info )
|
|
.childHandler( PipelineUtils.SERVER_CHILD )
|
|
- .group( eventLoops )
|
|
+ .group( bossEventLoopGroup, workerEventLoopGroup )
|
|
.localAddress( info.getSocketAddress() )
|
|
.bind().addListener( listener );
|
|
|
|
@@ -385,7 +386,7 @@ public class BungeeCord extends ProxyServer
|
|
}
|
|
}
|
|
};
|
|
- new RemoteQuery( this, info ).start( PipelineUtils.getDatagramChannel(), new InetSocketAddress( info.getHost().getAddress(), info.getQueryPort() ), eventLoops, bindListener );
|
|
+ new RemoteQuery( this, info ).start( PipelineUtils.getDatagramChannel(), new InetSocketAddress( info.getHost().getAddress(), info.getQueryPort() ), workerEventLoopGroup, bindListener );
|
|
}
|
|
}
|
|
}
|
|
@@ -494,12 +495,14 @@ public class BungeeCord extends ProxyServer
|
|
}
|
|
|
|
getLogger().info( "Closing IO threads" );
|
|
- eventLoops.shutdownGracefully();
|
|
- try
|
|
- {
|
|
- eventLoops.awaitTermination( Long.MAX_VALUE, TimeUnit.NANOSECONDS );
|
|
- } catch ( InterruptedException ex )
|
|
- {
|
|
+ bossEventLoopGroup.shutdownGracefully();
|
|
+ workerEventLoopGroup.shutdownGracefully();
|
|
+ while (true) {
|
|
+ try {
|
|
+ bossEventLoopGroup.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
|
|
+ workerEventLoopGroup.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
|
|
+ break;
|
|
+ } catch (InterruptedException ignored) {}
|
|
}
|
|
|
|
getLogger().info( "Thank you and goodbye" );
|
|
diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java b/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java
|
|
index 671cf96f..377df7ec 100644
|
|
--- a/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java
|
|
+++ b/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java
|
|
@@ -185,7 +185,7 @@ public class BungeeServerInfo implements ServerInfo
|
|
};
|
|
new Bootstrap()
|
|
.channel( PipelineUtils.getChannel( socketAddress ) )
|
|
- .group( BungeeCord.getInstance().eventLoops )
|
|
+ .group( BungeeCord.getInstance().workerEventLoopGroup )
|
|
.handler( PipelineUtils.BASE_SERVERSIDE )
|
|
.option( ChannelOption.CONNECT_TIMEOUT_MILLIS, BungeeCord.getInstance().getConfig().getRemotePingTimeout() )
|
|
.remoteAddress( socketAddress )
|
|
--
|
|
2.43.0
|
|
|