среде чтобы исключить параллельный доступ к данным? Один из вариантов это использовать Mutex для блокировки, Но в документации нашел пример на акторах. Есть ли способ шарить актор между разными методами? Пример, как тут правильно реализовать функцию sendMessage
Способ шарить актор между разными методами есть, Ваш код будет выглядеть примерно так: private val sendMessageActor = GlobalScope.actor<UserMsg> { for(msg in channel){ when (msg) { is UserMsg.SetUser -> user = msg.user is UserMsg.GetUser -> msg.response.complete(user) } } } suspend fun setUser(user: User) { sendMessageActor.send(UserMsg.SetUser(user)) } только замените GlobalScope на нужный вам скоуп, ознакомьтесь подробнее с докой по акторам и выберите наиболее подходящий для вашего кейса capacity
Обсуждают сегодня