diff --git a/java/src/processing/mode/java/pdex/ErrorCheckerService.java b/java/src/processing/mode/java/pdex/ErrorCheckerService.java index 44983d4ed..1fc344e99 100644 --- a/java/src/processing/mode/java/pdex/ErrorCheckerService.java +++ b/java/src/processing/mode/java/pdex/ErrorCheckerService.java @@ -249,8 +249,7 @@ public class ErrorCheckerService { private Thread errorCheckerThread; private BlockingQueue requestQueue = new ArrayBlockingQueue<>(1); - private ScheduledExecutorService scheduler = - Executors.newSingleThreadScheduledExecutor(); + private ScheduledExecutorService scheduler; volatile ScheduledFuture scheduledUiUpdate = null; volatile long nextUiUpdate = 0; @@ -346,6 +345,7 @@ public class ErrorCheckerService { public void start() { + scheduler = Executors.newSingleThreadScheduledExecutor(); errorCheckerThread = new Thread(mainLoop); errorCheckerThread.start(); } @@ -354,6 +354,9 @@ public class ErrorCheckerService { cancel(); running = false; errorCheckerThread.interrupt(); + if (scheduler != null) { + scheduler.shutdownNow(); + } }