From f38753ee3c575a75679718d09a6a4026044aa47b Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 14 Mar 2017 16:04:35 +0300 Subject: [PATCH] Remove explicit AppScheduledExecutorService shutdown (commit revert) Revert "Problem: manually shutdown AppScheduledExecutorService to allow compiler stop properly" The commit was added during update to 162.1024.1 to fix hangs in ant tasks on teamcity because of some thread created in AppScheduledExecutorService service. Remove the commit because can't reproduce those hangs under 162.2946 (Probably https://github.com/JetBrains/intellij-community/commit/12a079ef41882343bf83ef2a7dcee820b55fd154 fixed the hangs). This should also be addressed in fix for https://youtrack.jetbrains.com/issue/IDEA-169562 This reverts commit 99a75021e189824c1d34150ed72739b0c9a4272e. --- .../kotlin/serialization/builtins/run.kt | 12 ++---------- .../jetbrains/kotlin/cli/common/CLICompiler.java | 15 +++------------ .../cli/jvm/compiler/KotlinCoreEnvironment.kt | 1 - .../PreprocessorCLI.kt | 13 +++---------- 4 files changed, 8 insertions(+), 33 deletions(-) diff --git a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/run.kt b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/run.kt index fd15a273ac5..82697c3a762 100644 --- a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/run.kt +++ b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/run.kt @@ -16,8 +16,6 @@ package org.jetbrains.kotlin.serialization.builtins -import com.intellij.util.concurrency.AppExecutorUtil -import com.intellij.util.concurrency.AppScheduledExecutorService import java.io.File fun main(args: Array) { @@ -43,13 +41,7 @@ found top-level declarations to (*.kotlin_builtins files)""" val missing = srcDirs.filterNot(File::exists) assert(missing.isEmpty()) { "These source directories are missing: $missing" } - try { - BuiltInsSerializer(dependOnOldBuiltIns = false).serialize(destDir, srcDirs, listOf()) { totalSize, totalFiles -> - println("Total bytes written: $totalSize to $totalFiles files") - } - } - finally { - val service = AppExecutorUtil.getAppScheduledExecutorService() as AppScheduledExecutorService - service.shutdownAppScheduledExecutorService() + BuiltInsSerializer(dependOnOldBuiltIns = false).serialize(destDir, srcDirs, listOf()) { totalSize, totalFiles -> + println("Total bytes written: $totalSize to $totalFiles files") } } diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java index daaec63a969..a3cf9d99bb7 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java @@ -20,8 +20,6 @@ import com.google.common.base.Predicates; import com.intellij.openapi.Disposable; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.SystemInfo; -import com.intellij.util.concurrency.AppExecutorUtil; -import com.intellij.util.concurrency.AppScheduledExecutorService; import kotlin.collections.ArraysKt; import kotlin.jvm.functions.Function1; import org.fusesource.jansi.AnsiConsole; @@ -379,16 +377,9 @@ public abstract class CLICompiler { // We depend on swing (indirectly through PSI or something), so we want to declare headless mode, // to avoid accidentally starting the UI thread System.setProperty("java.awt.headless", "true"); - try { - ExitCode exitCode = doMainNoExit(compiler, args); - - if (exitCode != OK) { - System.exit(exitCode.getCode()); - } - } - finally { - AppScheduledExecutorService service = (AppScheduledExecutorService) AppExecutorUtil.getAppScheduledExecutorService(); - service.shutdownAppScheduledExecutorService(); + ExitCode exitCode = doMainNoExit(compiler, args); + if (exitCode != OK) { + System.exit(exitCode.getCode()); } } diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt index 299b5d89757..96ff84af8b7 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt @@ -105,7 +105,6 @@ import org.jetbrains.kotlin.script.KotlinScriptDefinitionProvider import org.jetbrains.kotlin.script.KotlinScriptExternalImportsProvider import org.jetbrains.kotlin.utils.PathUtil import java.io.File -import java.lang.IllegalStateException import java.util.* class KotlinCoreEnvironment private constructor( diff --git a/compiler/conditional-preprocessor/src/org.jetbrains.kotlin.preprocessor/PreprocessorCLI.kt b/compiler/conditional-preprocessor/src/org.jetbrains.kotlin.preprocessor/PreprocessorCLI.kt index dae64dce390..b49863d0c22 100644 --- a/compiler/conditional-preprocessor/src/org.jetbrains.kotlin.preprocessor/PreprocessorCLI.kt +++ b/compiler/conditional-preprocessor/src/org.jetbrains.kotlin.preprocessor/PreprocessorCLI.kt @@ -16,9 +16,9 @@ @file:JvmName("PreprocessorCLI") package org.jetbrains.kotlin.preprocessor -import com.intellij.util.concurrency.AppExecutorUtil -import com.intellij.util.concurrency.AppScheduledExecutorService import java.io.File +import java.util.concurrent.Executors +import java.util.concurrent.TimeUnit fun main(args: Array) { if (args.size != 3) { @@ -32,12 +32,5 @@ fun main(args: Array) { val profile = createProfile(args[2], targetPath) println("Preprocessing sources in $sourcePath to $targetPath with profile ${profile.name}") - - try { - Preprocessor().processSources(sourcePath, profile) - } - finally { - val service = AppExecutorUtil.getAppScheduledExecutorService() as AppScheduledExecutorService - service.shutdownAppScheduledExecutorService() - } + Preprocessor().processSources(sourcePath, profile) }