From 38d5f22fb68fa99f35b367d45303588ae5d24098 Mon Sep 17 00:00:00 2001 From: "J. Neugebauer" Date: Mon, 18 Jul 2022 22:47:37 +0200 Subject: [PATCH] Bug: UpdateThreadExecutor blockt nun korrekt den Zeichenthread --- src/main/java/schule/ngb/zm/Zeichenmaschine.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/schule/ngb/zm/Zeichenmaschine.java b/src/main/java/schule/ngb/zm/Zeichenmaschine.java index 5834df4..a791be7 100644 --- a/src/main/java/schule/ngb/zm/Zeichenmaschine.java +++ b/src/main/java/schule/ngb/zm/Zeichenmaschine.java @@ -1638,7 +1638,7 @@ public class Zeichenmaschine extends Constants { private Thread updateThread; - private boolean running = false, waiting = false; + private boolean running = false; public UpdateThreadExecutor() { super(1, 1, 0L, @@ -1646,13 +1646,18 @@ public class Zeichenmaschine extends Constants { updateState = Options.AppState.IDLE; } + @Override + public void execute( Runnable command ) { + running = true; + super.execute(command); + } + @Override protected void beforeExecute( Thread t, Runnable r ) { - // We store the one Thread this Executor holds + // We store the one Thread this Executor holds, // but it might change if a new Thread needed to be spawned // due to en error. updateThread = t; - running = true; } @Override @@ -1683,7 +1688,10 @@ public class Zeichenmaschine extends Constants { * @return */ public boolean isWaiting() { - return running && updateThread.getState() == Thread.State.TIMED_WAITING; + //return running && updateThread.getState() == Thread.State.TIMED_WAITING; + return running && updateThread != null && updateThread.getState() == Thread.State.TIMED_WAITING; + //|| updateThread.getState() == Thread.State.WAITING + //|| updateThread.getState() == Thread.State.BLOCKED; } }