diff --git a/kotlin-native/build.gradle b/kotlin-native/build.gradle index e6716852ffe..59b9037a956 100644 --- a/kotlin-native/build.gradle +++ b/kotlin-native/build.gradle @@ -28,7 +28,6 @@ import org.jetbrains.kotlin.CompareDistributionSignatures import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import org.apache.tools.ant.filters.ReplaceTokens import org.jetbrains.kotlin.UtilsKt -import java.util.concurrent.ConcurrentHashMap buildscript { apply from: "gradle/kotlinGradlePlugin.gradle" @@ -96,9 +95,6 @@ ext { konanVersionFull = ext.kotlinNativeVersion gradlePluginVersion = konanVersionFull - - // A separate map for each build for automatic cleaning the daemon after the build have finished. - toolClassLoadersMap = new ConcurrentHashMap() } allprojects { diff --git a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt index 30f1527d789..6604440cb71 100644 --- a/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt +++ b/kotlin-native/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt @@ -28,8 +28,6 @@ import java.io.File import java.util.Properties import org.jetbrains.kotlin.compilerRunner.KotlinToolRunner import org.jetbrains.kotlin.konan.target.AbstractToolConfig -import java.net.URLClassLoader -import java.util.concurrent.ConcurrentHashMap internal interface KonanToolRunner { fun run(args: List) @@ -70,15 +68,10 @@ internal abstract class KonanCliRunner( """.trimIndent() } - data class IsolatedClassLoaderCacheKey(val classpath: Set) + data class IsolatedClassLoaderCacheKey(val classpath: Set, val project: Project) // TODO: can't we use this for other implementations too? - final override val isolatedClassLoaderCacheKey get() = IsolatedClassLoaderCacheKey(classpath) - - // A separate map for each build for automatic cleaning the daemon after the build have finished. - @Suppress("UNCHECKED_CAST") - final override val isolatedClassLoaders get() = - project.project(":kotlin-native").ext["toolClassLoadersMap"] as ConcurrentHashMap + final override val isolatedClassLoaderCacheKey get() = IsolatedClassLoaderCacheKey(classpath, project) override fun transformArgs(args: List) = listOf(toolName) + args @@ -117,9 +110,6 @@ private val load0 = Runtime::class.java.getDeclaredMethod("load0", Class::class. internal class CliToolConfig(konanHome: String, target: String) : AbstractToolConfig(konanHome, target, emptyMap()) { override fun loadLibclang() { - // Load libclang into the system class loader. This is needed to allow developers to make changes - // in the tooling infrastructure without having to stop the daemon (otherwise libclang might end up - // loaded in two different class loaders which is not allowed by the JVM). load0.invoke(Runtime.getRuntime(), String::class.java, libclang) } }