JBR-7900 Improve logic of detecting toolkit inside registerShutdownHook

This commit is contained in:
Dmitrii Morskii
2024-11-14 11:33:09 +00:00
committed by Nikita Gubarkov
parent 0a0f717e5a
commit a2d87d8327

View File

@@ -137,6 +137,7 @@ import sun.java2d.ScreenUpdateManager;
import sun.java2d.d3d.D3DRenderQueue;
import sun.java2d.d3d.D3DScreenUpdateManager;
import sun.java2d.opengl.OGLRenderQueue;
import sun.java2d.windows.WindowsFlags;
import sun.print.PrintJob2D;
import sun.util.logging.PlatformLogger;
@@ -250,7 +251,7 @@ public final class WToolkit extends SunToolkit implements Runnable {
private void registerShutdownHook() {
Thread shutdown = new Thread(ThreadGroupUtils.getRootThreadGroup(), () -> {
// D3D's Java2D Queue Flusher thread needs to be syncronized with shutdown logic
if (ScreenUpdateManager.getInstance() instanceof D3DScreenUpdateManager) {
if (WindowsFlags.isD3DEnabled()) {
D3DRenderQueue.getInstance().flushAndInvokeNow(() -> {
shutdown();
});