Adopt cooperative reload cleanup

- Return cleanup completion from the committed Iris reload callback
This commit is contained in:
Brian Neumann-Fopiano
2026-10-07 10:24:59 -04:00
parent 7f5ce70f49
commit e72189adc7
@@ -18,6 +18,7 @@
package art.arcane.iris;
import java.util.concurrent.CompletionStage;
import art.arcane.volmlib.util.diagnostics.BukkitDebugDump;
import art.arcane.iris.generation.runtime.IrisEngineEffects;
import art.arcane.iris.generation.runtime.IrisWorldManager;
@@ -1011,20 +1012,21 @@ public class Iris extends VolmitPlugin implements Listener, ReloadAware {
}
@Override
public void onPreUnload(ReloadAware.PreUnloadReason reason) {
public CompletionStage<Void> commitReload(ReloadAware.PreUnloadReason reason) {
teardownPapi();
if (IrisToolbelt.isServerStopping()) {
quiesceRuntimeForServerShutdown("pre-unload:" + reason);
startPostStopFinisher();
Iris.debug("Pre-unload hook deferred generator teardown until Paper closes its chunk schedulers.");
return;
return CompletableFuture.completedFuture(null);
}
if (alreadyDrained.get()) {
Iris.debug("Pre-unload hook skipped; Iris already drained.");
return;
return CompletableFuture.completedFuture(null);
}
Iris.debug("BileTools pre-unload hook fired (" + reason + "). Freezing all Iris worlds.");
drainOnce("pre-unload:" + reason, 45L);
return CompletableFuture.completedFuture(null);
}
/**