With JDT content assist, I'm facing a recurring issue of Eclipse Platform: trying to move some computations out of the UI Thread. However, that first requires a decent way to know whether a (3rd party) piece of code we want to execute can run in a non-UI thread.
Of course, I'm not talking about statically analyzing code to detect whether it can work or not in non-UI Thread, but more of finding a way for extenders to declare that their code/extension is able to run in non-UI-Thread.
In bug 538360, I made an initial proposal of looking for this info in the extension metadata. However, I think it's too restricted and not well placed as the essence of whether UI Thread is required or not doesn't lie in the extension but in the code itself. So I've put in https://bugs.eclipse.org/bugs/show_bug.cgi?id=538630#c5
some more possible approaches to declare that.
I would like to get feedback about those approaches. As I think it's the first time we try to make a legacy extension point more non-UI-Thread-friendly, it would make a precendent so I'd rather us chosing carefully which is the best way after a sane discussion. Or maybe there is already a precendent I'm not aware of and already some recommendation on that matter?
Thanks in advance for your insights!