Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Schaefer2016-10-14 15:28:27 +0000
committerGerrit Code Review @ Eclipse.org2016-10-14 18:46:46 +0000
commite76ec05aabc57886c6a832cbacf8a84fa88fee4c (patch)
tree12894ba59c06ad43d5097816bfbe5acfa2feb88c /core/org.eclipse.cdt.core/model
parent4d0a556446e746f54e383c622e3ac561d70ccee2 (diff)
downloadorg.eclipse.cdt-e76ec05aabc57886c6a832cbacf8a84fa88fee4c.tar.gz
org.eclipse.cdt-e76ec05aabc57886c6a832cbacf8a84fa88fee4c.tar.xz
org.eclipse.cdt-e76ec05aabc57886c6a832cbacf8a84fa88fee4c.zip
Bug 503036 - Fix deadlock caused by previous fix.
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.java10
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) {
}
}

Back to the top