From 120e1289bced26584ea0965915ca8b06ab41b04b Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Sat, 26 May 2012 13:31:29 +0200 Subject: [PATCH] use shared thread pool --- .../org/jetbrains/jps/javac/JavacServer.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/jps/jps-builders/src/org/jetbrains/jps/javac/JavacServer.java b/jps/jps-builders/src/org/jetbrains/jps/javac/JavacServer.java index f4dfb849943a..4cb83029243b 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/javac/JavacServer.java +++ b/jps/jps-builders/src/org/jetbrains/jps/javac/JavacServer.java @@ -12,13 +12,12 @@ import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32FrameDecoder; import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32LengthFieldPrepender; import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.api.CanceledStatus; +import org.jetbrains.jps.api.SharedThreadPool; import javax.tools.*; import java.io.File; import java.net.InetSocketAddress; import java.util.*; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; /** * @author Eugene Zhuravlev @@ -32,11 +31,9 @@ public class JavacServer { private final ChannelGroup myAllOpenChannels = new DefaultChannelGroup("javac-server"); private final ChannelFactory myChannelFactory; private final ChannelPipelineFactory myPipelineFactory; - private ExecutorService myThreadPool; public JavacServer() { - myThreadPool = Executors.newCachedThreadPool(); - myChannelFactory = new NioServerSocketChannelFactory(myThreadPool, myThreadPool, 1); + myChannelFactory = new NioServerSocketChannelFactory(SharedThreadPool.INSTANCE, SharedThreadPool.INSTANCE, 1); final ChannelRegistrar channelRegistrar = new ChannelRegistrar(); final ChannelHandler compilationRequestsHandler = new CompilationRequestsHandler(); myPipelineFactory = new ChannelPipelineFactory() { @@ -198,10 +195,11 @@ public class JavacServer { final CancelHandler cancelHandler = new CancelHandler(); myCancelHandlers.add(cancelHandler); - myThreadPool.submit(new Runnable() { + SharedThreadPool.INSTANCE.submit(new Runnable() { public void run() { try { - final JavacRemoteProto.Message exitMsg = compile(ctx, sessionId, options, files, cp, platformCp, srcPath, outs, cancelHandler); + final JavacRemoteProto.Message exitMsg = + compile(ctx, sessionId, options, files, cp, platformCp, srcPath, outs, cancelHandler); Channels.write(ctx.getChannel(), exitMsg); } finally { @@ -218,10 +216,14 @@ public class JavacServer { cancelBuilds(); new Thread("StopThread") { public void run() { - JavacServer.this.stop(); + try { + JavacServer.this.stop(); + } + finally { + System.exit(0); + } } }.start(); - //System.exit(0); } else { reply = JavacProtoUtil.toMessage(sessionId, JavacProtoUtil.createFailure("Unsupported request type: " + requestType.name(), null));