Для вызова функции приостановки в не приостанавливающем контексте. Вы можете использовать runBlocking
.
private var myState: MyState? = null
get() {
return runBlocking {
mutex.withLock {
myState
}
}
}
set(value) {
runBlocking {
mutex.withLock {
field = value
}
}
}
private val mutex = Mutex()
ПРИМЕЧАНИЯ:
Возможно, вам лучше изменить свойство на две функции приостановки (getter / setter) вместо использования runBlocking
. Все зависит от контекста, в котором вы звоните myState
.
Вы также хотите рассмотреть возможность голосования за KT-15555 .