From 25816b2ccfbe7593117551d87a1f4cc0c02ad29b Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Mon, 21 Nov 2016 18:50:46 +0300 Subject: [PATCH] Use ProcessLauncher from native platform for out-of-process compilation --- .../kotlin/compilerRunner/GradleKotlinCompilerRunner.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt index 7f3b9e4d57e..22e1ef90d1f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt @@ -16,6 +16,8 @@ package org.jetbrains.kotlin.compilerRunner +import net.rubygrapefruit.platform.Native +import net.rubygrapefruit.platform.ProcessLauncher import org.gradle.api.Project import org.jetbrains.kotlin.cli.common.ExitCode import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments @@ -121,7 +123,8 @@ internal class GradleCompilerRunner(private val project: Project) : KotlinCompil val javaBin = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java" val classpathString = environment.compilerClasspath.map {it.absolutePath}.joinToString(separator = File.pathSeparator) val builder = ProcessBuilder(javaBin, "-cp", classpathString, compilerClassName, *argsArray) - val process = builder.start() + val processLauncher = Native.get(ProcessLauncher::class.java) + val process = processLauncher.start(builder) // important to read inputStream, otherwise the process may hang on some systems val readErrThread = thread {