Eclipse-allowDeadlock运行时选项

时间:2019-01-01 04:14:42

标签: java eclipse deadlock

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;

但是我没有发现reference的使用方式/时间

  

我还没有删除命令行参数“ -allowDeadlock”-谁知道,   有人可能会依靠它。 (?)

是否有使用此标志的用例?在可能导致日食卡死的应用程序中查找死锁是否有用?

1 个答案:

答案 0 :(得分:1)

请参见Javadoc of UILockListener

  

UI锁定侦听器用于防止UI线程死锁   拥有锁的线程尝试syncExec时在锁上锁定。

如果我理解正确,当UI线程中的插件持有锁并调用-allowDeadlock(不应这样做)时,syncExec可以防止UI冻结。因此,使用/运行能够做到这一点的第三方插件是一种解决方法。

Eclipse bug 496422中跟踪缺少的描述。