receiver.recv().await. в теле цикла я проверяю msg.parameter на соответствие некоторой переменной c типом Option<i64>.
на момент старта цикла переменная проинициализирована значением None. затем, уже после запуска таски, за пределами скоупа этой таски, через некоторое время переменная станет Some(value) и изменяться в дальнейшем не будет. мне пришло решение очевидное и, как мне кажется, тупое - Arc<Mutex<Option<i64>>. меняем переменную и забываем.
думал про oneshot, но мне важно, чтобы while был запущен сразу после старта таски. селект внутри лупа не годится, потому что ресивер... ну... одноразовый.
какие есть ещё варианты?
звучит как watch
Что за вотч?
Типа вотчер
Вроде как OnceCell как раз для
Ещё можно использовать oneshot в связке с futures::future::FutureExt::shared что-бы не мувать фичу и использовать потом futures::future::Shared::peek
Обсуждают сегодня