From 15e83c082e7defc9bb2bf43cdb7ff8017131dcaa Mon Sep 17 00:00:00 2001 From: "Michael N. Lipp" Date: Sun, 11 Jun 2023 12:47:11 +0200 Subject: [PATCH] Cancel timer if no longer needed. --- .../src/org/jdrupes/vmoperator/runner/qemu/QemuMonitor.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/QemuMonitor.java b/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/QemuMonitor.java index 0da9ae1..991001a 100644 --- a/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/QemuMonitor.java +++ b/org.jdrupes.vmoperator.runner.qemu/src/org/jdrupes/vmoperator/runner/qemu/QemuMonitor.java @@ -34,6 +34,7 @@ import java.util.logging.Logger; import org.jgrapes.core.Channel; import org.jgrapes.core.Component; import org.jgrapes.core.Components; +import org.jgrapes.core.Components.Timer; import org.jgrapes.core.annotation.Handler; import org.jgrapes.core.events.Start; import org.jgrapes.core.events.Stop; @@ -74,6 +75,8 @@ public class QemuMonitor extends Component { private SocketIOChannel monitorChannel; private Stop suspendedStop; + private Timer powerdownTimer; + /** * Instantiates a new qemu monitor. * @@ -223,6 +226,7 @@ public class QemuMonitor extends Component { monitorChannel = null; synchronized (this) { if (suspendedStop != null) { + powerdownTimer.cancel(); suspendedStop.resumeHandling(); suspendedStop = null; } @@ -244,7 +248,7 @@ public class QemuMonitor extends Component { writeToMonitor(monitorMessages.get("powerdown")); // Schedule timer as fallback - Components.schedule(t -> { + powerdownTimer = Components.schedule(t -> { synchronized (this) { if (suspendedStop != null) { suspendedStop.resumeHandling();