Convert to release coroutines (kotlinx-coroutines.1.0.1)

This commit is contained in:
Ilya Chernikov
2018-11-15 13:37:29 +01:00
parent 89ba7a7ae8
commit c05c46d50f
8 changed files with 18 additions and 17 deletions
+2 -2
View File
@@ -144,8 +144,8 @@ extra["versions.junit"] = "4.12"
extra["versions.javaslang"] = "2.0.6"
extra["versions.ant"] = "1.8.2"
extra["versions.android"] = "2.3.1"
extra["versions.kotlinx-coroutines-core"] = "0.26.1-eap13"
extra["versions.kotlinx-coroutines-jdk8"] = "0.26.1-eap13"
extra["versions.kotlinx-coroutines-core"] = "1.0.1"
extra["versions.kotlinx-coroutines-jdk8"] = "1.0.1"
extra["versions.json"] = "20160807"
extra["versions.native-platform"] = "0.14"
extra["versions.ant-launcher"] = "1.8.0"
@@ -16,7 +16,8 @@
package org.jetbrains.kotlin.idea.completion
import kotlinx.coroutines.channels.ConflatedChannel
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.channels.Channel.Factory.CONFLATED
import java.lang.System.currentTimeMillis
@@ -48,7 +49,7 @@ interface CompletionBenchmarkSink {
class Impl : CompletionBenchmarkSink {
private val pendingSessions = mutableListOf<CompletionSession>()
val channel = ConflatedChannel<CompletionBenchmarkResults>()
val channel = Channel<CompletionBenchmarkResults>(capacity = CONFLATED)
private val perSessionResults = LinkedHashMap<CompletionSession, PerSessionResults>()
private var start: Long = 0
@@ -24,6 +24,7 @@ import com.intellij.psi.PsiElementFinder
import com.intellij.psi.PsiManager
import com.intellij.psi.search.NonClasspathDirectoriesScope
import com.intellij.util.containers.SLRUMap
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import org.jetbrains.kotlin.idea.core.util.EDT
import org.jetbrains.kotlin.utils.addIfNotNull
@@ -80,7 +81,7 @@ class ScriptDependenciesCache(private val project: Project) {
private fun updateHighlighting(files: List<VirtualFile>) {
ScriptDependenciesModificationTracker.getInstance(project).incModificationCount()
launch(EDT(project)) {
GlobalScope.launch(EDT(project)) {
files.filter { it.isValid }.forEach {
PsiManager.getInstance(project).findFile(it)?.let { psiFile ->
DaemonCodeAnalyzer.getInstance(project).restart(psiFile)
@@ -79,7 +79,7 @@ class AsyncScriptDependenciesLoader(
dispatcher: CoroutineDispatcher,
currentTimeStamp: TimeStamp,
doResolve: suspend () -> DependenciesResolver.ResolveResult
): Job = launch(dispatcher + project.cancelOnDisposal) {
): Job = GlobalScope.launch(dispatcher + project.cancelOnDisposal) {
val result = try {
doResolve()
} catch (t: Throwable) {
@@ -24,6 +24,7 @@ import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Disposer
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Job
import kotlinx.coroutines.Runnable
import kotlin.coroutines.AbstractCoroutineContextElement
import kotlin.coroutines.CoroutineContext
@@ -36,10 +36,7 @@ import com.intellij.psi.search.GlobalSearchScope
import com.intellij.ui.components.JBLabel
import com.intellij.ui.components.JBTextField
import com.intellij.uiDesigner.core.GridConstraints
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.withTimeout
import kotlinx.coroutines.*
import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.idea.caches.project.ModuleOrigin
import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo
@@ -61,7 +58,7 @@ abstract class AbstractCompletionBenchmarkAction : AnAction() {
val benchmarkSink = CompletionBenchmarkSink.enableAndGet()
val scenario = createBenchmarkScenario(project, benchmarkSink) ?: return
launch(EDT) {
GlobalScope.launch(EDT) {
scenario.doBenchmark()
CompletionBenchmarkSink.disable()
}
@@ -32,7 +32,8 @@ import com.intellij.psi.PsiDocumentManager
import com.intellij.ui.components.JBPanel
import com.intellij.ui.components.JBTextField
import com.intellij.uiDesigner.core.GridLayoutManager
import kotlinx.coroutines.channels.ConflatedChannel
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.jetbrains.kotlin.idea.actions.internal.benchmark.AbstractCompletionBenchmarkAction.Companion.addBoxWithLabel
@@ -76,7 +77,7 @@ class HighlightingBenchmarkAction : AnAction() {
val finishListener = DaemonFinishListener()
connection.subscribe(DaemonCodeAnalyzer.DAEMON_EVENT_TOPIC, finishListener)
launch(EDT) {
GlobalScope.launch(EDT) {
try {
delay(100)
ktFiles
@@ -98,7 +99,7 @@ class HighlightingBenchmarkAction : AnAction() {
private data class Settings(val seed: Long, val files: Int, val lines: Int)
private inner class DaemonFinishListener : DaemonCodeAnalyzer.DaemonListener {
val channel = ConflatedChannel<String>()
val channel = Channel<String>(capacity = Channel.CONFLATED)
override fun daemonFinished() {
channel.offer(SUCCESS)
@@ -23,8 +23,8 @@ import com.intellij.openapi.util.TextRange
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiRecursiveElementVisitor
import com.intellij.psi.codeStyle.CodeStyleManager
import kotlinx.coroutines.run
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
import org.jetbrains.kotlin.idea.conversion.copy.range
@@ -64,7 +64,7 @@ class J2kPostProcessor(private val formatCode: Boolean) : PostProcessor {
collectAvailableActions(file, rangeMarker)
}
run(EDT) {
withContext(EDT) {
for ((element, action, _, writeActionNeeded) in elementToActions) {
if (element.isValid) {
if (writeActionNeeded) {
@@ -88,7 +88,7 @@ class J2kPostProcessor(private val formatCode: Boolean) : PostProcessor {
if (formatCode) {
run(EDT) {
withContext(EDT) {
runWriteAction {
val codeStyleManager = CodeStyleManager.getInstance(file.project)
if (rangeMarker != null) {