Scripting: implement correct disposal of REPL state on finalization
#KT-47927 fixed
This commit is contained in:
committed by
TeamCityServer
parent
a45e31720c
commit
4243bafd1d
+3
-1
@@ -6,6 +6,7 @@
|
||||
package kotlin.script.experimental.jvmhost.jsr223
|
||||
|
||||
import org.jetbrains.kotlin.cli.common.repl.*
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock
|
||||
import javax.script.ScriptContext
|
||||
import javax.script.ScriptEngineFactory
|
||||
@@ -32,8 +33,9 @@ class KotlinJsr223ScriptEngineImpl(
|
||||
private var lastScriptContext: ScriptContext? = null
|
||||
|
||||
val jsr223HostConfiguration = ScriptingHostConfiguration(defaultJvmScriptingHostConfiguration) {
|
||||
val weakThis = WeakReference(this@KotlinJsr223ScriptEngineImpl)
|
||||
jsr223 {
|
||||
getScriptContext { lastScriptContext ?: getContext() }
|
||||
getScriptContext { weakThis.get()?.let { it.lastScriptContext ?: it.getContext() } }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user