mirror of
https://github.com/PaperMC/Waterfall.git
synced 2024-11-16 07:15:14 +01:00
85c0a35f0b
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing BungeeCord Changes: 6613aaea Add test fix for library classes being visible to non-dependent plugins 53ce6b93 #3200: Fix protocol for 21w40a d8e29384 #2466: Use switch in "BungeeCord" plugin message handling 5cf869df #3198: Remove terminally deprecated SecurityManager f26f7d88 Add optional 1.18 (21w40a) snapshot protocol support
48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
From 1371c7a0ef5af1684661cee2af8c8fbe8c761b36 Mon Sep 17 00:00:00 2001
|
|
From: Tux <write@imaginarycode.com>
|
|
Date: Fri, 12 Feb 2016 23:55:53 -0500
|
|
Subject: [PATCH] Resolve sendData() deadlocks
|
|
|
|
|
|
diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java b/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java
|
|
index 4bb0f68f..9d581d9a 100644
|
|
--- a/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java
|
|
+++ b/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java
|
|
@@ -110,19 +110,22 @@ public class BungeeServerInfo implements ServerInfo
|
|
Preconditions.checkNotNull( channel, "channel" );
|
|
Preconditions.checkNotNull( data, "data" );
|
|
|
|
- synchronized ( packetQueue )
|
|
- {
|
|
- Server server = ( players.isEmpty() ) ? null : players.iterator().next().getServer();
|
|
- if ( server != null )
|
|
- {
|
|
- server.sendData( channel, data );
|
|
- return true;
|
|
- } else if ( queue )
|
|
- {
|
|
- packetQueue.add( new PluginMessage( channel, data, false ) );
|
|
+ Server server;
|
|
+
|
|
+ synchronized (players) {
|
|
+ server = players.isEmpty() ? null : players.iterator().next().getServer();
|
|
+ }
|
|
+
|
|
+ if (server != null) {
|
|
+ server.sendData(channel, data);
|
|
+ return true;
|
|
+ } else if (queue) {
|
|
+ synchronized (packetQueue) {
|
|
+ packetQueue.add(new PluginMessage(channel, data, false));
|
|
}
|
|
- return false;
|
|
}
|
|
+
|
|
+ return false;
|
|
}
|
|
|
|
private long lastPing;
|
|
--
|
|
2.30.1 (Apple Git-130)
|
|
|