Eclipse - опция времени выполнения allowDeadlock - PullRequest
0 голосов
/ 01 января 2019

allowDeadlock является одним из Eclipse runtime-options , но у него нет описания

-allowDeadlock <описание>

Eclipse Code не выполняет UISynchronizer в этом случае:

if (avoidDeadlock) {
        UILockListener uiLockListener = new UILockListener(display);
        Job.getJobManager().setLockListener(uiLockListener);
        synchronizer = new UISynchronizer(display, uiLockListener);
        display.setSynchronizer(synchronizer);
        // declare the main thread to be a startup thread.
        UISynchronizer.startupThread.set(Boolean.TRUE);
    } else
        synchronizer = null;

Но я не нашел никакой ссылки как / когда использоватьit

Я не удалил аргумент командной строки "-allowDeadlock" - кто знает, кто-то может положиться на него.(?)

Есть ли варианты использования этого флага?это полезно для поиска мертвых блокировок в приложении, которое может застревать затмение?

1 Ответ

0 голосов
/ 01 января 2019

См. Javadoc из UILockListener:

Слушатель блокировки пользовательского интерфейса используется для предотвращения взаимоблокировки потока пользовательского интерфейса при блокировке, когда поток, владеющий блокировкой, пытаетсяsyncExec.

Если я правильно понимаю, -allowDeadlock предотвращает зависание пользовательского интерфейса, когда плагин в потоке пользовательского интерфейса удерживает блокировку и вызывает syncExec (чего не должно быть)).Так что это обходной путь для использования / запуска сторонних плагинов, которые делают это.

Отсутствующее описание отслеживается в Ошибка Eclipse 496422 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...