Size: a a a

2021 November 18

AL

Andrey @ozkriff Lesn... in Rust Async
https://www.ncameron.org/blog/what-is-an-async-runtime прикольно, про половину вообще ни разу не слышал
источник

S

Sergey in Rust Async
Подскажи пожалуйста по tokio Mutex
если мы лочим и берем значение:

let mut mutex_value: MutexGuard<String> = self.last_processed_block.lock().await;

то такой спосоп установки нового значения:

*mutex_value = String::from("replaced");

и такой:

mem::replace(&mut *mutex_value, String::from("replaced"));

идентично работают? Или есть особенности? И какой будет использовать правильнее?
источник

K

Kitsu in Rust Async
mem::replace возвращает замененное значение, так что компилятору придется выкинуть лишнее действие
а так, семантически эквивалентно, яб выбрал первый способ т.к. выглядит проще
источник

IB

Ivan Boldyrev in Rust Async
Идентично. Простое присваивание лучше, потому что не затуманивает происходящее.
источник

IB

Ivan Boldyrev in Rust Async
replace используется, если нужно старое значение, а в примерах этого нет.
источник

S

Sergey in Rust Async
Спасибо
источник
2021 November 25

p

polunin.ai in Rust Async
у меня есть неизвестное количество футур которые я хочу запустить в одной таске и чтобы они исполнялись. что есть в токио для такого?
источник

p

polunin.ai in Rust Async
футуры постоянно добавляются в очередь
источник

KR

Kai Ren in Rust Async
FuturesUnordered или просто spawn?
источник

p

polunin.ai in Rust Async
FuturesUnordered не могу найти
источник

KR

Kai Ren in Rust Async
источник

p

polunin.ai in Rust Async
спасибо
источник

p

polunin.ai in Rust Async
так а они будут работать в фоне конкуретно с основным кодом или их эвейтить надо? мне так чтобы эвейтить было необязательно
источник

K

Kitsu in Rust Async
Авейтить нужно, можешь заспавнить таску, где будет цикл с авейтами
источник

KR

Kai Ren in Rust Async
Посмотри там в доке неплохо расписано.

Внутри FuturesUnordered они будут конкуррентно поллиться, но эвейтить нужно всю FuturesUnordered  ток.
источник

LB

Let Eat Bee in Rust Async
может tokio::task::spawn_local подойдет?
источник

KR

Kai Ren in Rust Async
Вероятно, если хочет в рамках одной таски, то чтобы дропались все вместе при случае.
источник

LB

Let Eat Bee in Rust Async
как раз подходит, spawn_local работает внутри LocalSet , который сам Future и его можно дропнуть
источник

KR

Kai Ren in Rust Async
👍
источник

S

Sergey in Rust Async
Есть ли возможность используя tokio_stream или futures использовать result внутри лямбды операции?
Например типа такого:
`tokio_stream::iter(collection)
 .and_then(|value|-> async {value.try_into()})
 .sum().await`
источник