I don't know all code in JBT, so I
don't know how all jobs we create work. MOST of our jobs probably
do their work, and then finish. But there may be some jobs out
there which block or wait on objects. This means they have the
potential to freeze. This also means anyone joining those jobs
might freeze.
Where does this need to be working inside JBT? Well, if you ever
join a job that could freeze, adn you'd like to be able to be
interrupted, then this is important.
Again, it's just something to be aware of. Don't join jobs that
could block unless you double-test that you're able to be
interrupted. Otherwise you could end up with a permanent deadlock.
On 05/10/2013 06:52 AM, Denis Golovin wrote:
On 05/09/2013 02:51 AM, Rob Stryker
wrote:
It seems not really big issue because it is not common case, there
are just two requests since
2009-10-26 one is yours.
Where do you need this this case to be working inside JBossTools?
Thanks
Denis
You can read more on the eclipse bug:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=293312
Any time your code uses Join, you should pay extra attention as to who
can interrupt you, for what reason, or not. If join() is not able to be
interrupted, and the job you join against freezes, both threads may be
deadlocked forever. Stopping the job will NOT un-lock your job OR the
joined thread, either, unless your job overrides the canceling() method
to interrupt itself!
So be aware.
My new implementation of WaitJob is here below:
https://github.com/jbosstools/jbosstools-base/blob/master/common/plugins/org.jboss.tools.common.core/src/org/jboss/tools/common/core/ecf/internal/WaitJob.java
_______________________________________________
jbosstools-dev mailing list
jbosstools-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jbosstools-dev