Add call to Extension.shutdown on orx-olive reload

This commit is contained in:
Edwin Jakobs
2020-05-01 22:27:58 +02:00
parent ba31693915
commit 255cec6af3

View File

@@ -54,9 +54,6 @@ class Olive<P : Program>(val resources: Resources? = null, private var scriptMod
else -> "src/main/kotlin/${stackRootClassName().split(".").last()}.kt"
}
set(value) {
// require(scriptMode == ScriptMode.KOTLIN_SCRIPT) {
// "can only change the script in KOTLIN_SCRIPT mode"
// }
field = value
scriptChange(value)
}
@@ -124,7 +121,7 @@ class Olive<P : Program>(val resources: Resources? = null, private var scriptMod
try {
logger.info("change detected, reloading script")
val scriptContents = when(scriptMode) {
val scriptContents = when (scriptMode) {
ScriptMode.KOTLIN_SCRIPT -> it.readText()
ScriptMode.OLIVE_PROGRAM -> {
val source = it.readText()
@@ -148,6 +145,9 @@ class Olive<P : Program>(val resources: Resources? = null, private var scriptMod
program.launch {
val func = futureFunc.await()
program.extensions.forEach {extension ->
extension.shutdown(program)
}
program.extensions.clear()
program.extensions.addAll(originalExtensions)
@@ -190,6 +190,4 @@ class Olive<P : Program>(val resources: Resources? = null, private var scriptMod
}
}
}
}