Skip to content

Commit 948e92e

Browse files
committed
Get rid of GlobalScope
1 parent 42dce7a commit 948e92e

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/main/kotlin/org/jetbrains/kotlinx/jupyter/connection.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.jetbrains.kotlinx.jupyter
22

3+
import kotlinx.coroutines.CoroutineScope
4+
import kotlinx.coroutines.Dispatchers
5+
import kotlinx.coroutines.launch
36
import kotlinx.serialization.decodeFromString
47
import kotlinx.serialization.encodeToString
58
import kotlinx.serialization.json.Json
@@ -147,6 +150,7 @@ class JupyterConnection(val config: KernelConfig) : Closeable {
147150
var contextMessage: Message? = null
148151

149152
private val currentExecutions = HashSet<Thread>()
153+
private val coroutineScope = CoroutineScope(Dispatchers.Default)
150154

151155
data class ConnectionExecutionResult<T>(
152156
val result: T?,
@@ -189,6 +193,10 @@ class JupyterConnection(val config: KernelConfig) : Closeable {
189193
}
190194
}
191195

196+
fun launchJob(runnable: suspend CoroutineScope.() -> Unit) {
197+
coroutineScope.launch(block = runnable)
198+
}
199+
192200
override fun close() {
193201
heartbeat.close()
194202
shell.close()

src/main/kotlin/org/jetbrains/kotlinx/jupyter/protocol.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package org.jetbrains.kotlinx.jupyter
22

33
import ch.qos.logback.classic.Level
4-
import kotlinx.coroutines.Dispatchers
5-
import kotlinx.coroutines.GlobalScope
6-
import kotlinx.coroutines.launch
74
import kotlinx.serialization.json.Json
85
import kotlinx.serialization.json.JsonObject
96
import kotlinx.serialization.json.encodeToJsonElement
@@ -300,14 +297,14 @@ fun JupyterConnection.Socket.shellMessagesHandler(msg: Message, repl: ReplForJup
300297
sendWrapped(msg, makeReplyMessage(msg, MessageType.COMM_INFO_REPLY, content = CommInfoReply(mapOf())))
301298
}
302299
is CompleteRequest -> {
303-
GlobalScope.launch(Dispatchers.Default) {
300+
connection.launchJob {
304301
repl.complete(content.code, content.cursorPos) { result ->
305302
sendWrapped(msg, makeReplyMessage(msg, MessageType.COMPLETE_REPLY, content = result.message))
306303
}
307304
}
308305
}
309306
is ListErrorsRequest -> {
310-
GlobalScope.launch(Dispatchers.Default) {
307+
connection.launchJob {
311308
repl.listErrors(content.code) { result ->
312309
sendWrapped(msg, makeReplyMessage(msg, MessageType.LIST_ERRORS_REPLY, content = result.message))
313310
}

0 commit comments

Comments
 (0)