SPIGOT-4868: Server deadlock on /stop command

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot 2019-05-05 09:25:51 +10:00
commit f3d2f9c5c0

View file

@ -4,7 +4,7 @@
public static <T extends PacketListener> void ensureMainThread(Packet<T> packet, T t0, IAsyncTaskHandler<?> iasynctaskhandler) throws CancelledPacketHandleException { public static <T extends PacketListener> void ensureMainThread(Packet<T> packet, T t0, IAsyncTaskHandler<?> iasynctaskhandler) throws CancelledPacketHandleException {
if (!iasynctaskhandler.isMainThread()) { if (!iasynctaskhandler.isMainThread()) {
iasynctaskhandler.execute(() -> { iasynctaskhandler.execute(() -> {
+ if (MinecraftServer.getServer().isStopped() || (t0 instanceof PlayerConnection && ((PlayerConnection) t0).processedDisconnect)) return; // CraftBukkit, MC-142590 + if (MinecraftServer.getServer().hasStopped() || (t0 instanceof PlayerConnection && ((PlayerConnection) t0).processedDisconnect)) return; // CraftBukkit, MC-142590
packet.a(t0); packet.a(t0);
}); });
throw CancelledPacketHandleException.INSTANCE; throw CancelledPacketHandleException.INSTANCE;