geforkt von Mirrors/Paper
Fix broken async chat. Since Mojang introduced netty, but removed async packet handling, there are now only a few threads available to consume packets. Unfortunately we now have to maintain async chat support. In order to allow Async events to not kill these precious few threads, we do what we did in our Netty implementation, and offload these to their own, decoupled thread pool.
Dieser Commit ist enthalten in:
Ursprung
8d622d915b
Commit
1e4407fd04
37
CraftBukkit-Patches/0071-Fix-Broken-Async-Chat.patch
Normale Datei
37
CraftBukkit-Patches/0071-Fix-Broken-Async-Chat.patch
Normale Datei
@ -0,0 +1,37 @@
|
|||||||
|
From c05e1dfb0778e93a4d62851904fb6029fd369089 Mon Sep 17 00:00:00 2001
|
||||||
|
From: md_5 <md_5@live.com.au>
|
||||||
|
Date: Thu, 5 Dec 2013 13:55:53 +1100
|
||||||
|
Subject: [PATCH] Fix Broken Async Chat
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/PacketPlayInChat.java b/src/main/java/net/minecraft/server/PacketPlayInChat.java
|
||||||
|
index 604a7af..4dedd01 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/PacketPlayInChat.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/PacketPlayInChat.java
|
||||||
|
@@ -43,7 +43,20 @@ public class PacketPlayInChat extends Packet {
|
||||||
|
}
|
||||||
|
// CraftBukkit end
|
||||||
|
|
||||||
|
- public void handle(PacketListener packetlistener) {
|
||||||
|
- this.a((PacketPlayInListener) packetlistener);
|
||||||
|
- }
|
||||||
|
+ // Spigot Start
|
||||||
|
+ private static final java.util.concurrent.ExecutorService executors = java.util.concurrent.Executors.newCachedThreadPool(
|
||||||
|
+ new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon( true ).setNameFormat( "Async Chat Thread - #%d" ).build() );
|
||||||
|
+ public void handle(final PacketListener packetlistener)
|
||||||
|
+ {
|
||||||
|
+ executors.submit( new Runnable()
|
||||||
|
+ {
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public void run()
|
||||||
|
+ {
|
||||||
|
+ PacketPlayInChat.this.a( (PacketPlayInListener) packetlistener );
|
||||||
|
+ }
|
||||||
|
+ } );
|
||||||
|
+ }
|
||||||
|
+ // Spigot End
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.8.3.2
|
||||||
|
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren