diff --git a/fabrikmc-igui/src/main/kotlin/net/axay/fabrik/igui/observable/GuiProperty.kt b/fabrikmc-igui/src/main/kotlin/net/axay/fabrik/igui/observable/GuiProperty.kt index 7901080c..0da50936 100644 --- a/fabrikmc-igui/src/main/kotlin/net/axay/fabrik/igui/observable/GuiProperty.kt +++ b/fabrikmc-igui/src/main/kotlin/net/axay/fabrik/igui/observable/GuiProperty.kt @@ -1,5 +1,7 @@ package net.axay.fabrik.igui.observable +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock import kotlin.reflect.KProperty class GuiProperty( @@ -15,4 +17,13 @@ class GuiProperty( this.value = value invokeListeners() } + + private val setValueMutex = Mutex() + + suspend fun setValueSuspending(value: T) { + setValueMutex.withLock { + this.value = value + } + invokeListeners() + } }