Функция consume_ budget
pub async fn consume_budget()
Доступно только при включённой возможности crate
rt.Расходует единицу бюджета и возвращает выполнение среде выполнения Tokio, если кооперативный бюджет задачи исчерпан.
Задача уступит управление, только если весь её кооперативный бюджет исчерпан. Эту функцию можно использовать для добавления необязательных точек уступки в длительные вычисления, которые не используют ресурсы Tokio, такие как сокеты или семафоры, не уступая управление среде выполнения без необходимости каждый раз.
Примеры
Убедитесь, что функция, возвращающая сумму (потенциально большого количества) перебираемых значений, работает кооперативно.
async fn sum_iterator(input: &mut impl std::iter::Iterator<Item=i64>) -> i64 {
let mut sum: i64 = 0;
while let Some(i) = input.next() {
sum += i;
tokio::task::consume_budget().await
}
sum
}
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/task/coop/fn.consume_budget.html