mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-04 06:45:43 +02:00
Bug 503036 - "Binary not found" every other launch (via Run As)
- Add a family object for identifying the binary runner job - Use the join mechanism of the job manager to ensure all binary runner jobs are finished Change-Id: I8b82bb0c663e5d2a618e3222e4bd5ba7b48b46c4 Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
This commit is contained in:
parent
0459a0ea4d
commit
8416294bb1
1 changed files with 7 additions and 4 deletions
|
@ -86,6 +86,7 @@ public class BinaryRunner {
|
||||||
private final Job runnerJob; // final fields don't need synchronization
|
private final Job runnerJob; // final fields don't need synchronization
|
||||||
private IOutputEntry[] entries = new IOutputEntry[0];
|
private IOutputEntry[] entries = new IOutputEntry[0];
|
||||||
private boolean isStopped= false; // access to isStopped must be synchronized.
|
private boolean isStopped= false; // access to isStopped must be synchronized.
|
||||||
|
private final static Object BINARY_RUNNER_FAMILY = new Object();
|
||||||
|
|
||||||
public BinaryRunner(IProject prj) {
|
public BinaryRunner(IProject prj) {
|
||||||
cproject = CModelManager.getDefault().create(prj);
|
cproject = CModelManager.getDefault().create(prj);
|
||||||
|
@ -135,6 +136,11 @@ public class BinaryRunner {
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean belongsTo(Object family) {
|
||||||
|
return family == BINARY_RUNNER_FAMILY;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
job.setPriority(Job.LONG);
|
job.setPriority(Job.LONG);
|
||||||
return job;
|
return job;
|
||||||
|
@ -153,10 +159,7 @@ public class BinaryRunner {
|
||||||
*/
|
*/
|
||||||
public void waitIfRunning() {
|
public void waitIfRunning() {
|
||||||
try {
|
try {
|
||||||
Job currentJob = Job.getJobManager().currentJob();
|
Job.getJobManager().join(BINARY_RUNNER_FAMILY, null);
|
||||||
if (currentJob != null && !currentJob.equals(runnerJob)) {
|
|
||||||
runnerJob.join();
|
|
||||||
}
|
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue