У меня есть приложение с компонентом JOGL. Когда он выключается с помощью System.exit (0), я часто получаю исключение:
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.java2d.Disposer.run(Disposer.java:125)
at java.lang.Thread.run(Thread.java:619)
Я видел этот вопрос Иногда InterruptedException при выходе из приложения Swing , но у меня нет запущенных потоков, не являющихся демонами. Мне интересно, если базовый код JOGL постоянно помещает события в очередь событий Swing, что может вызвать эту ошибку, поскольку приложение Swing будет корректно завершать работу только тогда, когда очередь событий пуста.
Есть ли способ более чистого отключения? Может быть, каким-то образом остановить основной цикл JOGL (я использую сторонний инструмент, nasa worldwind, поэтому у меня не обязательно есть доступ к основному Animator, запускающему приложение).
РЕДАКТИРОВАТЬ: Оказывается, это не проблема openGL вообще. OpenGL корректно завершал работу, и я просто участвовал в гонке с отключением. Благодаря.