File tree Expand file tree Collapse file tree
mars/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs
neon/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs
oxygen/org.eclipse.core.jobs
src/org/eclipse/core/internal/jobs Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -288,9 +288,11 @@ else if (state != Job.NONE)
288288 } finally {
289289 if (interrupted )
290290 Thread .currentThread ().interrupt ();
291- //only update the lock state if we ended up using the thread job that was given to us
292- waitEnd (threadJob , threadJob == result , monitor );
293- if (threadJob == result ) {
291+ ISchedulingRule resultRule = result .getRule ();
292+ ISchedulingRule threadJobRule = threadJob .getRule ();
293+ boolean containsRule = resultRule != null && threadJobRule != null && resultRule .contains (threadJobRule );
294+ waitEnd (threadJob , containsRule , monitor );
295+ if (containsRule ) {
294296 if (waiting )
295297 manager .implicitJobs .removeWaiting (threadJob );
296298 }
Original file line number Diff line number Diff line change @@ -288,9 +288,11 @@ else if (state != Job.NONE)
288288 } finally {
289289 if (interrupted )
290290 Thread .currentThread ().interrupt ();
291- //only update the lock state if we ended up using the thread job that was given to us
292- waitEnd (threadJob , threadJob == result , monitor );
293- if (threadJob == result ) {
291+ ISchedulingRule resultRule = result .getRule ();
292+ ISchedulingRule threadJobRule = threadJob .getRule ();
293+ boolean containsRule = resultRule != null && threadJobRule != null && resultRule .contains (threadJobRule );
294+ waitEnd (threadJob , containsRule , monitor );
295+ if (containsRule ) {
294296 if (waiting )
295297 manager .implicitJobs .removeWaiting (threadJob );
296298 }
Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -303,9 +303,11 @@ else if (state != Job.NONE)
303303 manager .getLockManager ().removeLockWaitThread (currentThread , threadJob .getRule ());
304304 }
305305 } finally {
306- //only update the lock state if we ended up using the thread job that was given to us
307- waitEnd (threadJob , threadJob == result , monitor );
308- if (threadJob == result ) {
306+ ISchedulingRule resultRule = result .getRule ();
307+ ISchedulingRule threadJobRule = threadJob .getRule ();
308+ boolean containsRule = resultRule != null && threadJobRule != null && resultRule .contains (threadJobRule );
309+ waitEnd (threadJob , containsRule , monitor );
310+ if (containsRule ) {
309311 if (waiting )
310312 manager .implicitJobs .removeWaiting (threadJob );
311313 }
You can’t perform that action at this time.
0 commit comments