package org.codinjutsu.tools.jenkins.logic; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledThreadPoolExecutor; public class ExecutorService { private final ScheduledThreadPoolExecutor scheduledThreadPoolExecutor; public ExecutorService() { this.scheduledThreadPoolExecutor = new ScheduledThreadPoolExecutor(1); } public ScheduledThreadPoolExecutor getExecutor() { return scheduledThreadPoolExecutor; } public static ExecutorService getInstance(Project project) { return ServiceManager.getService(project, ExecutorService.class); } public void safeTaskCancel(ScheduledFuture<?> futureTask) { if (futureTask == null) { return; } if (!futureTask.isDone() || !futureTask.isCancelled()) { futureTask.cancel(false); } } }