diff options
author | Doug Schaefer | 2016-10-14 15:28:27 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2016-10-14 18:46:46 +0000 |
commit | e76ec05aabc57886c6a832cbacf8a84fa88fee4c (patch) | |
tree | 12894ba59c06ad43d5097816bfbe5acfa2feb88c /core/org.eclipse.cdt.core/model | |
parent | 4d0a556446e746f54e383c622e3ac561d70ccee2 (diff) | |
download | org.eclipse.cdt-e76ec05aabc57886c6a832cbacf8a84fa88fee4c.tar.gz org.eclipse.cdt-e76ec05aabc57886c6a832cbacf8a84fa88fee4c.tar.xz org.eclipse.cdt-e76ec05aabc57886c6a832cbacf8a84fa88fee4c.zip |
Bug 503036 - Fix deadlock caused by previous fix.
Change-Id: Ic333a7f0230e6a28033fd6659408895b34f5b70e
Diffstat (limited to 'core/org.eclipse.cdt.core/model')
-rw-r--r-- | core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/BinaryRunner.java | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/BinaryRunner.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/BinaryRunner.java index 56b08786ea7..b51513e6696 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/BinaryRunner.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/BinaryRunner.java @@ -86,7 +86,6 @@ public class BinaryRunner { private final Job runnerJob; // final fields don't need synchronization private IOutputEntry[] entries = new IOutputEntry[0]; private boolean isStopped= false; // access to isStopped must be synchronized. - private final static Object BINARY_RUNNER_FAMILY = new Object(); public BinaryRunner(IProject prj) { cproject = CModelManager.getDefault().create(prj); @@ -136,11 +135,6 @@ public class BinaryRunner { } return status; } - - @Override - public boolean belongsTo(Object family) { - return family == BINARY_RUNNER_FAMILY; - } }; job.setPriority(Job.LONG); return job; @@ -159,7 +153,9 @@ public class BinaryRunner { */ public void waitIfRunning() { try { - Job.getJobManager().join(BINARY_RUNNER_FAMILY, null); + if (runnerJob != null && !runnerJob.equals(Job.getJobManager().currentJob())) { + runnerJob.join(); + } } catch (InterruptedException e) { } } |