месте.
есловно есть эффект, хочется перед его выполнением "проверить" что сейчас мы не на паузе, если без паузы - просто его запускаем, если на паузе - ожидаем пока выйдем из паузы
я сделал через Ref[Option[Promise[Unit]]],
типа перед эффектом вставляем эффект ожидания если есть пауза, через ref.get > promiseOpt.fold(success)(promise.await)
соотв извне когда приходит пауза делаем ref.updateSome { case None => newPromise } и анпауза комплитит промис (чтобы авейты дальше побежали) и записыват None в реф, чтобы следующие не паузились
пока писал понял что можно убрать option, и просто оставлять completed promise в рефе
может есть что-то поэлегантней?
семафор?
ну там то что паузится не должно ничего эквайрить, или там есть ожидание свободного, без захвата?
Обсуждают сегодня