mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-30 12:29:13 +00:00
[ci skip] cleanup
This commit is contained in:
@@ -5,7 +5,7 @@ Subject: [PATCH] Rewrite queue on Connection.flushQueue
|
||||
|
||||
|
||||
diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java
|
||||
index 7b78c0af4a83bd39a5bc2d6554cc677bd4c0c822..f4e535f3f7e9bcb6f0383e4704b8012cde7717a3 100644
|
||||
index 7b78c0af4a83bd39a5bc2d6554cc677bd4c0c822..eb9d99d657ae01c36af7cf4a75e206b917a14c39 100644
|
||||
--- a/net/minecraft/network/Connection.java
|
||||
+++ b/net/minecraft/network/Connection.java
|
||||
@@ -35,6 +35,7 @@ import io.netty.handler.timeout.TimeoutException;
|
||||
@@ -21,11 +21,11 @@ index 7b78c0af4a83bd39a5bc2d6554cc677bd4c0c822..f4e535f3f7e9bcb6f0383e4704b8012c
|
||||
private final PacketFlow receiving;
|
||||
private volatile boolean sendLoginDisconnect = true;
|
||||
- private final Queue<WrappedConsumer> pendingActions = Queues.newConcurrentLinkedQueue(); // Paper - Optimize network
|
||||
+ private final Queue<WrappedConsumer> pendingActions = new ArrayDeque<>(); // Paper - Optimize network - Leaf optimize queue
|
||||
+ private final Queue<WrappedConsumer> pendingActions = new ArrayDeque<>(); // Paper - Optimize network // Leaf - Rewrite queue on Connection.flushQueue
|
||||
public Channel channel;
|
||||
public SocketAddress address;
|
||||
// Spigot start
|
||||
@@ -541,10 +542,9 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
@@ -541,10 +542,11 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
if (io.papermc.paper.util.MCUtil.isMainThread()) {
|
||||
return this.processQueue();
|
||||
} else if (this.isPending) {
|
||||
@@ -33,13 +33,15 @@ index 7b78c0af4a83bd39a5bc2d6554cc677bd4c0c822..f4e535f3f7e9bcb6f0383e4704b8012c
|
||||
- synchronized (this.pendingActions) {
|
||||
- return this.processQueue();
|
||||
- }
|
||||
+ // Leaf start - Rewrite queue on Connection.flushQueue
|
||||
+ // Submit to the event loop to ensure thread confinement
|
||||
+ this.channel.eventLoop().execute(() -> this.processQueue());
|
||||
+ this.channel.eventLoop().execute(this::processQueue);
|
||||
+ return false;
|
||||
+ // Leaf end - Rewrite queue on Connection.flushQueue
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -554,29 +554,17 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
@@ -554,29 +556,19 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -58,6 +60,7 @@ index 7b78c0af4a83bd39a5bc2d6554cc677bd4c0c822..f4e535f3f7e9bcb6f0383e4704b8012c
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
+ // Leaf start - Rewrite queue on Connection.flushQueue
|
||||
+ WrappedConsumer queued;
|
||||
+ while ((queued = this.pendingActions.poll()) != null) {
|
||||
if (queued instanceof PacketSendAction packetSendAction) {
|
||||
@@ -70,6 +73,7 @@ index 7b78c0af4a83bd39a5bc2d6554cc677bd4c0c822..f4e535f3f7e9bcb6f0383e4704b8012c
|
||||
}
|
||||
|
||||
- iterator.remove();
|
||||
+ // Leaf end - Rewrite queue on Connection.flushQueue
|
||||
if (queued.tryMarkConsumed()) {
|
||||
queued.accept(this);
|
||||
}
|
||||
Reference in New Issue
Block a user