mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
do not spawn lots of threads
This commit is contained in:
@@ -11,7 +11,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
* @author Eugene Zhuravlev
|
||||
* Date: 9/24/11
|
||||
*/
|
||||
public class SequentialTaskExecutor {
|
||||
public class SequentialTaskExecutor implements Executor {
|
||||
private final Executor myExecutor;
|
||||
private final Queue<FutureTask> myTaskQueue = new LinkedBlockingQueue<FutureTask>();
|
||||
private final AtomicBoolean myInProgress = new AtomicBoolean(false);
|
||||
@@ -36,6 +36,11 @@ public class SequentialTaskExecutor {
|
||||
myExecutor = executor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(Runnable task) {
|
||||
submit(task);
|
||||
}
|
||||
|
||||
public RunnableFuture submit(Runnable task) {
|
||||
final FutureTask futureTask = new FutureTask(task, null);
|
||||
if (myTaskQueue.offer(futureTask)) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.jetbrains.jps.incremental;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.api.SequentialTaskExecutor;
|
||||
import org.jetbrains.jps.api.SharedThreadPool;
|
||||
import org.jetbrains.jps.incremental.java.JavaBuilder;
|
||||
import org.jetbrains.jps.incremental.resources.ResourcesBuilder;
|
||||
@@ -15,6 +16,6 @@ public class JavaBuilderService extends BuilderService {
|
||||
@NotNull
|
||||
@Override
|
||||
public List<? extends ModuleLevelBuilder> createModuleLevelBuilders() {
|
||||
return Arrays.asList(new JavaBuilder(SharedThreadPool.INSTANCE), new ResourcesBuilder());
|
||||
return Arrays.asList(new JavaBuilder(new SequentialTaskExecutor(SharedThreadPool.INSTANCE)), new ResourcesBuilder());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user