Race condition beim Beenden behoben
Das Beenden der Zeichenmaschine und vor allem das Schließen des Zeichenfesnters wird im Swing Thread ausgeführt. Es konnte passieren, dass der Zeichenthread noch einen draw-Aufruf verarbeitete, während die Zeichenleinwand schon disposed wurde. Dann konnte eine NullPointerException auftreten. Der Zeichenthread hat nun 500 ms Zeit, von alleine zu beenden, bevor die ZM vollständig beendet wird.
This commit is contained in:
parent
b76d533739
commit
8d0bd2bc99
|
@ -1447,7 +1447,11 @@ public class Zeichenmaschine extends Constants {
|
|||
Thread.yield();
|
||||
}
|
||||
updateThreadExecutor.shutdownNow();
|
||||
try {
|
||||
updateThreadExecutor.awaitTermination(500, TimeUnit.MILLISECONDS);
|
||||
} catch( InterruptedException ex ) {
|
||||
|
||||
} finally {
|
||||
// Cleanup
|
||||
shutdown();
|
||||
cleanup();
|
||||
|
@ -1457,6 +1461,7 @@ public class Zeichenmaschine extends Constants {
|
|||
quit();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue