I'm developing an eclipse plugin and I'd like to have a background job that, under certain conditions, pops up a shell. The problem is that:

- asyncExec runs on the UI thread, so I can't do a while(true) ... Thread.sleep(). Same thing for UIJob
- a separate Thread (let's say a Runable, scheduled via ScheduledExecutorService.scheduleatFixedRate) solve the problem of running the job in the background, but then I have no access to the UI thread to reuse the display.
- I also tried to create a new Display ... I've got no errors, but the shell does not shows up.
Trying to reuse the display with Display.getDefault() or Display.getCurrent() hangs while creating Shell and Display.getDefault().getActiveShell() also hangs.