Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;

import org.eclipse.core.internal.jobs.JobManager;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
Expand Down Expand Up @@ -181,6 +182,7 @@ public static boolean waitForJobs(String owner, Object jobFamily, long minTimeMs
// only uninteresting jobs running
break;
}
jobs.forEach(Job::wakeUp);

if (!Collections.disjoint(runningJobs, jobs)) {
// There is a job which runs already quite some time, don't wait for it to avoid test timeouts
Expand Down Expand Up @@ -210,11 +212,8 @@ public static Object[] getUsualJobFamiliesToIgnore() {
return new Object[] { ProcessConsole.class, AbstractReconciler.class };
}

private static void wakeUpSleepingJobs(Object family) {
List<Job> sleepingJobs = getSleepingJobs(family);
for (Job job : sleepingJobs) {
job.wakeUp();
}
private static void wakeUpSleepingJobs(Object jobFamily) {
Job.getJobManager().wakeUp(jobFamily);
}

static Set<Job> runningJobs = new LinkedHashSet<>();
Expand All @@ -235,6 +234,7 @@ private static String dumpRunningOrWaitingJobs(List<Job> jobs) {
runningJobs.add(job);
sb.append("\n'").append(job.toString()).append("'/");
sb.append(job.getClass().getName());
sb.append(":").append(JobManager.printState(job));
Thread thread = job.getThread();
if (thread != null) {
ThreadInfo[] threadInfos = ManagementFactory.getThreadMXBean().getThreadInfo(new long[] { thread.threadId() }, true, true);
Expand Down Expand Up @@ -264,17 +264,6 @@ public static List<Job> getRunningOrWaitingJobs(Object jobFamily, Object... excl
return running;
}

private static List<Job> getSleepingJobs(Object family) {
List<Job> sleeping = new ArrayList<>();
Job[] jobs = Job.getJobManager().find(family);
for (Job job : jobs) {
if (job.getState() == Job.SLEEPING) {
sleeping.add(job);
}
}
return sleeping;
}

private static boolean isRunningOrWaitingJob(Job job) {
int state = job.getState();
return (state == Job.RUNNING || state == Job.WAITING);
Expand Down
Loading