векторе выполнится и заменять ее на другую?
Не знаю, но мне тоже интересно. Как решишь - пингани, а то я могу пропустить решение вопроса
В цикле await'ь футуры из какого-нибудь канала
мне надо какой-нибудь FuturesUnordered, который вернет мне индекс выполнившейся футуры
https://docs.rs/futures/0.3.19/futures/stream/trait.Stream.html#tymethod.poll_next скорее всего это сойдет
у стрима в futures был вроде какой-то метод с buffered в названии, посмотри мб это то, что тебе нужно
Тут await кучи футур через одну футуру
FuturesUnordered, мб?)
не, оно же всех сразу будет поллить
Лучше через spawn работать
да, при этом оно возвращает результат и удаляет футуру, когда она выполнилась. А дальше я просто новую туда пушну
loop { let (i, res) = await_one_of_vec(&mut futures).await; futures[i] = tokio::spawn{async {}); }
https://docs.rs/futures/latest/futures/stream/trait.StreamExt.html#method.buffer_unordered вот же
buffered = polled тут?
оно поллит сразу n штук и ждет их
если там n-m, то он поллит следующие m
ну я так понял там n поллит, если одна из выполнилась, то поллит следующую и прошлые n-1
❤️ пасиб огромное) @zetanumbers ну это опять тупой путь в лоб через каналы, с ним всё понятно примерно)
Без проблем, чатик же для помощи. Может я тоже однажды попрошу помощи
Обсуждают сегодня