From 5f02aac93093ddbaee837d2a76c8de64be24694a Mon Sep 17 00:00:00 2001 From: 1 <386029724@qq.com> Date: Sat, 26 Jul 2025 12:39:55 +0800 Subject: [PATCH] Update CachedMutableValue.kt --- .../main/java/com/donut/mixfile/util/CachedMutableValue.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/donut/mixfile/util/CachedMutableValue.kt b/app/src/main/java/com/donut/mixfile/util/CachedMutableValue.kt index 75843ae..77706f8 100644 --- a/app/src/main/java/com/donut/mixfile/util/CachedMutableValue.kt +++ b/app/src/main/java/com/donut/mixfile/util/CachedMutableValue.kt @@ -72,7 +72,9 @@ abstract class CachedMutableValue( @Volatile private var value: T, ) { + @Volatile private var loaded = false + private val lock = Any() private val mutex = Mutex() private var stateValue by mutableLongStateOf(0) @@ -82,7 +84,7 @@ abstract class CachedMutableValue( abstract fun writeCachedValue(value: T) operator fun getValue(thisRef: Any?, property: Any?): T { - synchronized(this) { + synchronized(lock) { if (!loaded) { value = readCachedValue() loaded = true @@ -94,7 +96,7 @@ abstract class CachedMutableValue( operator fun setValue(thisRef: Any?, property: Any?, value: T) { - synchronized(this) { + synchronized(lock) { if (this.value == value) { return }