Size: a a a

2020 August 06

A

Apachee in Rust Async
думаю сделаю через него
источник

V

Vetro in Rust Async
А на FuturesUnordered кстати скорее всего не поправил просто или почему там WorkerResult
источник

A

Apachee in Rust Async
Vetro
А на FuturesUnordered кстати скорее всего не поправил просто или почему там WorkerResult
да, я забыл
источник

V

Vetro in Rust Async
👍
источник

D

Denis in Rust Async
кстати эта проблема с анонимными возвращаемыми типами решится, когда допилят
https://github.com/rust-lang/rust/issues/63063
источник

A

Apachee in Rust Async
но оно работает, я сейчас чекнул, Stream имплементится по итогу для FuturesUnordered в структуре
источник

A

Apachee in Rust Async
Denis
кстати эта проблема с анонимными возвращаемыми типами решится, когда допилят
https://github.com/rust-lang/rust/issues/63063
ок
источник

D

Denis in Rust Async
Denis
кстати эта проблема с анонимными возвращаемыми типами решится, когда допилят
https://github.com/rust-lang/rust/issues/63063
типа такого можно будет делать:

type Kek = impl std::future::Future;

fn lol() -> Kek {
   async {}
}

pub struct Wow(Vec<Kek>);
источник

A

Apachee in Rust Async
а когда стоит использовать crossbeam::atomic::AtomicCell вместо std::sync::Mutex?
источник

D

Denis in Rust Async
дык у них же API принципиально разные
источник

D

Denis in Rust Async
AtomicCell позволяет store/swap делать, а мутекс — полноценные мутабельные ссылки
источник

V

Vetro in Rust Async
Apachee
а когда стоит использовать crossbeam::atomic::AtomicCell вместо std::sync::Mutex?
В асинке стандартный лочащий мутекс кстати не стоит использовать

(за исключением моментов когда лок не держится между .await точками)
источник

A

Apachee in Rust Async
Vetro
В асинке стандартный лочащий мутекс кстати не стоит использовать

(за исключением моментов когда лок не держится между .await точками)
а новые гайды на tokio.rs говорят обратное, если асинк, то не обязательно tokio::sync::Mutex, а также что чаще всего проблемы с локами решаются не заменой мьютекса с одного на другой
источник

V

Vetro in Rust Async
Ну вообще правильно говорят

Нет смысла от асинхронного мутекса, если его лок не держится между несколькими точками .await

Но и да, это просто в любом случае уже из разряда микрооптимизаций, кмк
источник

V

Vetro in Rust Async
Если вдруг из-за логики дедлок где-то - смена мутекса вряд ли поможет
источник

D

Denis in Rust Async
ваще очень странный совет от токийцев, потому что вот это вот их as long as contention remains low and the lock is not held across calls to .await легче лёгкого упустить из виду
источник

D

Denis in Rust Async
прям очень странно
источник

D

Denis in Rust Async
токийский мутекс не блокирует экзекутор, а обычный — блокирует
источник

D

Denis in Rust Async
это конечно становится актуальным только когда тасок в этом самом экзекуторе довольно много, но это по-моему дефолтный кейс
источник

V

Vetro in Rust Async
Обычный не блокирует экзекутор весь ведь

(только если он не однопоточный)
источник