Community
Participate
Working Groups
We at Code Recommenders just encountered a very surprising deadlock, documented in Bug 458073. In a nutshell, the problem is that using JGit (not EGit, just the headless API) to perform a CheckoutCommand can cause a call to Display.syncExec. Simplest scenario with just two threads: UI thread: scheduled job waits for some resource Job: locks resource performs CheckoutCommand and thus waits for UI thread Granted, waiting on the UI thread for some resource may be considered bad practice, but I'm sure this will happen in the wild (and may be more likely if more than 2 threads are involved, as in Bug 458073). I am hence wondering whether it would be worthwhile to dispatch IndexChangedEvents asynchronously, as apparently the current implementation can cause waits for the UI thread in a completely innocent-looking code using plain JGit. Thoughts?