Negligible delay for ServerList reply with number of characters.

Contributed by dontknowdontcare.
This commit is contained in:
MobiusDevelopment
2022-08-14 07:27:03 +00:00
parent 5466f9766f
commit 1501be0179
33 changed files with 445 additions and 80 deletions

View File

@@ -66,8 +66,8 @@ public class ServerList implements IOutgoingPacket
private final List<ServerData> _servers;
private final int _lastServer;
private final Map<Integer, Integer> _charsOnServers;
private final Map<Integer, long[]> _charsToDelete;
private Map<Integer, Integer> _charsOnServers;
private Map<Integer, long[]> _charsToDelete;
class ServerData
{
@@ -120,8 +120,21 @@ public class ServerList implements IOutgoingPacket
{
_servers.add(new ServerData(client, gsi));
}
_charsOnServers = client.getCharsOnServ();
_charsToDelete = client.getCharsWaitingDelOnServ();
// Wait 300ms to reply with character list.
int i = 0;
while (((_charsOnServers == null) || (_charsToDelete == null)) && (i++ < 3))
{
try
{
Thread.sleep(100);
}
catch (InterruptedException ignored)
{
}
_charsOnServers = client.getCharsOnServ();
_charsToDelete = client.getCharsWaitingDelOnServ();
}
}
@Override