MavenServerManager: use blocking reads for mostly-idle external process

to avoid wasting CPU on constant sleeping and waking up
This commit is contained in:
peter
2018-09-14 12:07:48 +02:00
parent 8db4af04fe
commit 83269bbdfb
@@ -33,6 +33,7 @@ import com.intellij.openapi.util.text.StringUtilRt;
import com.intellij.util.EnvironmentUtil;
import com.intellij.util.PathUtil;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.io.BaseOutputReader;
import com.intellij.util.xmlb.Converter;
import com.intellij.util.xmlb.annotations.Attribute;
import gnu.trove.THashMap;
@@ -363,7 +364,13 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
protected OSProcessHandler startProcess() throws ExecutionException {
SimpleJavaParameters params = createJavaParameters();
GeneralCommandLine commandLine = params.toCommandLine();
OSProcessHandler processHandler = new OSProcessHandler(commandLine);
OSProcessHandler processHandler = new OSProcessHandler(commandLine) {
@NotNull
@Override
protected BaseOutputReader.Options readerOptions() {
return BaseOutputReader.Options.BLOCKING;
}
};
processHandler.setShouldDestroyProcessRecursively(false);
return processHandler;
}