Use Bungee thread pool for additional logging

This commit is contained in:
md_5 2013-03-21 16:28:30 +11:00
parent 5e31b158e9
commit 3d8143c36e
2 changed files with 27 additions and 1 deletions

View File

@ -50,6 +50,7 @@ import net.md_5.bungee.config.YamlConfig;
import net.md_5.bungee.netty.PipelineUtils; import net.md_5.bungee.netty.PipelineUtils;
import net.md_5.bungee.packet.DefinedPacket; import net.md_5.bungee.packet.DefinedPacket;
import net.md_5.bungee.packet.PacketFAPluginMessage; import net.md_5.bungee.packet.PacketFAPluginMessage;
import net.md_5.bungee.scheduler.BungeeThreadPool;
/** /**
* Main BungeeCord proxy class. * Main BungeeCord proxy class.
@ -76,7 +77,7 @@ public class BungeeCord extends ProxyServer
/** /**
* Thread pools. * Thread pools.
*/ */
public final ScheduledThreadPoolExecutor executors = new ScheduledThreadPoolExecutor( Integer.MAX_VALUE, public final ScheduledThreadPoolExecutor executors = new BungeeThreadPool( Integer.MAX_VALUE,
new ThreadFactoryBuilder().setNameFormat( "Bungee Pool Thread #%1$d" ).build() ); new ThreadFactoryBuilder().setNameFormat( "Bungee Pool Thread #%1$d" ).build() );
public final MultithreadEventLoopGroup eventLoops = new NioEventLoopGroup( 0, new ThreadFactoryBuilder().setNameFormat( "Netty IO Thread #%1$d" ).build() ); public final MultithreadEventLoopGroup eventLoops = new NioEventLoopGroup( 0, new ThreadFactoryBuilder().setNameFormat( "Netty IO Thread #%1$d" ).build() );
/** /**

View File

@ -0,0 +1,25 @@
package net.md_5.bungee.scheduler;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadFactory;
import java.util.logging.Level;
import net.md_5.bungee.api.ProxyServer;
public class BungeeThreadPool extends ScheduledThreadPoolExecutor
{
public BungeeThreadPool(int corePoolSize, ThreadFactory threadFactory)
{
super( corePoolSize, threadFactory );
}
@Override
protected void afterExecute(Runnable r, Throwable t)
{
super.afterExecute( r, t );
if ( t != null )
{
ProxyServer.getInstance().getLogger().log( Level.SEVERE, "Task caused exception whilst running", t );
}
}
}