Treat "daemon is dying" state as a case for fallback compilation strategy in jps

This commit is contained in:
Ilya Chernikov
2017-12-18 11:42:43 +01:00
parent 6e34f57acf
commit 1101bb7fb4
@@ -147,7 +147,8 @@ class JpsKotlinCompilerRunner : KotlinCompilerRunner<JpsCompilerEnvironment>() {
val verbose = compilerArgs.verbose val verbose = compilerArgs.verbose
val options = CompilationOptions(compilerMode, targetPlatform, reportCategories(verbose), reportSeverity(verbose), requestedCompilationResults = emptyArray()) val options = CompilationOptions(compilerMode, targetPlatform, reportCategories(verbose), reportSeverity(verbose), requestedCompilationResults = emptyArray())
val res = daemon.compile(sessionId, withAdditionalCompilerArgs(compilerArgs), options, JpsCompilerServicesFacadeImpl(environment), null) val res = daemon.compile(sessionId, withAdditionalCompilerArgs(compilerArgs), options, JpsCompilerServicesFacadeImpl(environment), null)
return exitCodeFromProcessExitCode(res.get()) // TODO: consider implementing connection retry, instead of fallback here
return res.takeUnless { it is CompileService.CallResult.Dying }?.let { exitCodeFromProcessExitCode(it.get()) }
} }
private fun withAdditionalCompilerArgs(compilerArgs: CommonCompilerArguments): Array<String> { private fun withAdditionalCompilerArgs(compilerArgs: CommonCompilerArguments): Array<String> {