diff --git a/dataforge-context/build.gradle.kts b/dataforge-context/build.gradle.kts index dd581254..261933fe 100644 --- a/dataforge-context/build.gradle.kts +++ b/dataforge-context/build.gradle.kts @@ -13,12 +13,12 @@ kotlin { val commonMain by getting { dependencies { api(project(":dataforge-meta")) - api(kotlin("reflect")) api("io.github.microutils:kotlin-logging-common:1.7.8") } } val jvmMain by getting { dependencies { + api(kotlin("reflect")) api("io.github.microutils:kotlin-logging:1.7.8") api("ch.qos.logback:logback-classic:1.2.3") } diff --git a/dataforge-context/src/commonMain/kotlin/hep/dataforge/context/Context.kt b/dataforge-context/src/commonMain/kotlin/hep/dataforge/context/Context.kt index 3db334c2..bf901991 100644 --- a/dataforge-context/src/commonMain/kotlin/hep/dataforge/context/Context.kt +++ b/dataforge-context/src/commonMain/kotlin/hep/dataforge/context/Context.kt @@ -92,8 +92,10 @@ open class Context( config.action() } - override val coroutineContext: CoroutineContext = (parent ?: Global).coroutineContext.let { parenContext -> - parenContext + SupervisorJob(parenContext[Job]) + override val coroutineContext: CoroutineContext by lazy { + (parent ?: Global).coroutineContext.let { parenContext -> + parenContext + SupervisorJob(parenContext[Job]) + } } /** diff --git a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Config.kt b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Config.kt index 53a2e184..0ac29d86 100644 --- a/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Config.kt +++ b/dataforge-meta/src/commonMain/kotlin/hep/dataforge/meta/Config.kt @@ -14,7 +14,7 @@ data class MetaListener( ) interface ObservableMeta : Meta { - fun onChange(owner: Any?, action: (Name, MetaItem<*>?, MetaItem<*>?) -> Unit) + fun onChange(owner: Any?, action: (name: Name, oldItem: MetaItem<*>?, newItem: MetaItem<*>?) -> Unit) fun removeListener(owner: Any?) }