explicit, not implicit... oops

This commit is contained in:
Aikar 2018-03-11 14:21:03 -04:00
parent c8027cd453
commit 87c48cf19d
No known key found for this signature in database
GPG key ID: 401ADFC9891FAAFE

View file

@ -1,15 +1,15 @@
From b7806469aa14552fea0aece2446419b9a96c27cc Mon Sep 17 00:00:00 2001 From b7806469aa14552fea0aece2446419b9a96c27cc Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sun, 11 Mar 2018 14:13:33 -0400 Date: Sun, 11 Mar 2018 14:13:33 -0400
Subject: [PATCH] Disable Implicit Network Manager Flushing Subject: [PATCH] Disable Explicit Network Manager Flushing
This seems completely pointless, as packet dispatch uses .writeAndFlush. This seems completely pointless, as packet dispatch uses .writeAndFlush.
Things seem to work fine without implicit flushing, but incase issues arise, Things seem to work fine without explicit flushing, but incase issues arise,
provide a System property to re-enable it using improved logic of doing the provide a System property to re-enable it using improved logic of doing the
flushing on the netty event loop, so it won't do the flush on the main thread. flushing on the netty event loop, so it won't do the flush on the main thread.
Renable flushing by passing -Dpaper.implicit-flush=true Renable flushing by passing -Dpaper.explicit-flush=true
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index b93a26e8f..da7c45697 100644 index b93a26e8f..da7c45697 100644
@ -19,7 +19,7 @@ index b93a26e8f..da7c45697 100644
// Paper start - NetworkClient implementation // Paper start - NetworkClient implementation
public int protocolVersion; public int protocolVersion;
public java.net.InetSocketAddress virtualHost; public java.net.InetSocketAddress virtualHost;
+ private static boolean enableImplicitFlush = Boolean.getBoolean("paper.implicit-flush"); + private static boolean enableExplicitFlush = Boolean.getBoolean("paper.explicit-flush");
// Paper end // Paper end
public NetworkManager(EnumProtocolDirection enumprotocoldirection) { public NetworkManager(EnumProtocolDirection enumprotocoldirection) {
@ -28,7 +28,7 @@ index b93a26e8f..da7c45697 100644
if (this.channel != null) { if (this.channel != null) {
- this.channel.flush(); - this.channel.flush();
+ if (enableImplicitFlush) this.channel.eventLoop().execute(() -> this.channel.flush()); // Paper - we don't need to implicit flush here, but allow opt in incase issues are found to a better version + if (enableExplicitFlush) this.channel.eventLoop().execute(() -> this.channel.flush()); // Paper - we don't need to explicit flush here, but allow opt in incase issues are found to a better version
} }
} }