From 5286a69c340a440ec67a413e6fd83859a2ea0758 Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Wed, 18 Aug 2021 14:08:43 -0400 Subject: [PATCH] More shutdown fixes --- .../com/volmit/iris/core/service/EditSVC.java | 1 - .../iris/core/service/PreservationSVC.java | 69 ++++++++++--------- .../engine/platform/BukkitChunkGenerator.java | 3 +- .../com/volmit/iris/util/mantle/Mantle.java | 11 ++- 4 files changed, 47 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/service/EditSVC.java b/src/main/java/com/volmit/iris/core/service/EditSVC.java index ce7ce1be5..1012c7eea 100644 --- a/src/main/java/com/volmit/iris/core/service/EditSVC.java +++ b/src/main/java/com/volmit/iris/core/service/EditSVC.java @@ -37,7 +37,6 @@ public class EditSVC implements IrisService { @Override public void onEnable() { this.editors = new KMap<>(); - Iris.info("EDIT SVC ENABLED!"); Bukkit.getScheduler().scheduleSyncRepeatingTask(Iris.instance, this::update, 1000, 1000); } diff --git a/src/main/java/com/volmit/iris/core/service/PreservationSVC.java b/src/main/java/com/volmit/iris/core/service/PreservationSVC.java index b6123d28d..49a7a8ad0 100644 --- a/src/main/java/com/volmit/iris/core/service/PreservationSVC.java +++ b/src/main/java/com/volmit/iris/core/service/PreservationSVC.java @@ -74,52 +74,53 @@ public class PreservationSVC implements IrisService @Override public void onDisable() { dereferencer.interrupt(); + dereference(); - for(Thread i : threads) - { - if(i.isAlive()) + postShutdown(() -> { + for(Thread i : threads) + { + if(i.isAlive()) + { + try + { + i.interrupt(); + Iris.info("Shutdown Thread " + i.getName()); + } + + catch(Throwable e) + { + Iris.reportError(e); + } + } + } + + for(MultiBurst i : bursts) { try { - i.interrupt(); - Iris.info("Shutdown Thread " + i.getName()); + i.shutdownNow(); + Iris.info("Shutdown Multiburst " + i); } catch(Throwable e) { - + Iris.reportError(e); } } - } - for(MultiBurst i : bursts) - { - try + for(ExecutorService i : services) { - i.shutdownNow(); - Iris.info("Shutdown Multiburst " + i); + try + { + i.shutdownNow(); + Iris.info("Shutdown Executor Service " + i); + } + + catch(Throwable e) + { + Iris.reportError(e); + } } - - catch(Throwable e) - { - - } - } - - for(ExecutorService i : services) - { - try - { - i.shutdownNow(); - Iris.info("Shutdown Executor Service " + i); - } - - catch(Throwable e) - { - - } - } - - dereference(); + }); } } diff --git a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java index 7ec34124a..5f2c46928 100644 --- a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java +++ b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java @@ -29,6 +29,7 @@ import com.volmit.iris.engine.framework.WrongEngineBroException; import com.volmit.iris.engine.object.common.IrisWorld; import com.volmit.iris.engine.object.dimensional.IrisDimension; import com.volmit.iris.util.collection.KList; +import com.volmit.iris.util.format.C; import com.volmit.iris.util.hunk.Hunk; import com.volmit.iris.util.io.ReactiveFolder; import com.volmit.iris.util.scheduling.ChronoLatch; @@ -161,7 +162,7 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun r.run(); loadLock.release(LOAD_LOCKS); } catch (Throwable e) { - e.printStackTrace(); + Iris.reportError(e); } }); } diff --git a/src/main/java/com/volmit/iris/util/mantle/Mantle.java b/src/main/java/com/volmit/iris/util/mantle/Mantle.java index afdae0de8..256d68cb1 100644 --- a/src/main/java/com/volmit/iris/util/mantle/Mantle.java +++ b/src/main/java/com/volmit/iris/util/mantle/Mantle.java @@ -207,7 +207,16 @@ public class Mantle { }); } - b.complete(); + try + { + b.complete(); + } + + catch(Throwable e) + { + Iris.reportError(e); + } + ioBurst.shutdownNow(); Iris.debug("The Mantle has Closed " + C.DARK_AQUA + dataFolder.getAbsolutePath()); }