Skip to content

Commit

Permalink
Fix brief shutdown hang in SubServers.Client
Browse files Browse the repository at this point in the history
  • Loading branch information
ME1312 committed Apr 12, 2022
1 parent ce262c6 commit 1521acf
Show file tree
Hide file tree
Showing 4 changed files with 2 additions and 19 deletions.
Expand Up @@ -110,7 +110,7 @@ public static void terminate(Process process) {
private static boolean terminate9(Object handle) {
try { // Attempt iteration over Java 9 ProcessHandle objects
Class<?> clazz = handle.getClass();
Stream<?> children = (Stream<?>) clazz.getMethod("descendants").invoke(handle);
Stream<?> children = (Stream<?>) clazz.getMethod("children").invoke(handle);
clazz.getMethod("destroyForcibly").invoke(handle);
children.forEach(Executable::terminate9);
return false;
Expand Down
Expand Up @@ -182,16 +182,6 @@ public SubDataClient open(Consumer<Runnable> scheduler, Logger logger, InetAddre
return subdata;
}

@SuppressWarnings("deprecation")
@Override
public SubDataClient open(Logger logger, InetAddress address, int port) throws IOException {
SubPlugin plugin = SubAPI.getInstance().getInternals();
return open(event -> {
if (plugin.isEnabled()) Bukkit.getScheduler().runTaskAsynchronously(plugin, event);
else event.run();
}, logger, address, port);
}

public SubDataClient open(InetAddress address, int port) throws IOException {
return open(getLogger(0), address, port);
}
Expand Down
Expand Up @@ -195,13 +195,6 @@ public SubDataClient open(Consumer<Runnable> scheduler, Logger logger, InetAddre
return subdata;
}

@SuppressWarnings("deprecation")
@Override
public SubDataClient open(Logger logger, InetAddress address, int port) throws IOException {
SubPlugin plugin = SubAPI.getInstance().getInternals();
return open(event -> Sponge.getScheduler().createTaskBuilder().async().execute(event).submit(plugin), logger, address, port);
}

public SubDataClient open(InetAddress address, int port) throws IOException {
return open(getLogger(0), address, port);
}
Expand Down
Expand Up @@ -110,7 +110,7 @@ public static void terminate(Process process) {
private static boolean terminate9(Object handle) {
try { // Attempt iteration over Java 9 ProcessHandle objects
Class<?> clazz = handle.getClass();
Stream<?> children = (Stream<?>) clazz.getMethod("descendants").invoke(handle);
Stream<?> children = (Stream<?>) clazz.getMethod("children").invoke(handle);
clazz.getMethod("destroyForcibly").invoke(handle);
children.forEach(Executable::terminate9);
return false;
Expand Down

0 comments on commit 1521acf

Please sign in to comment.