Size: a a a

Rust — русскоговорящее сообществo

2020 March 13

r

red75prime in Rust — русскоговорящее сообществo
Max Frai
Не могу понять что там внутри
Токио у него внутри: https://crates.io/crates/actix-rt
источник

MF

Max Frai in Rust — русскоговорящее сообществo
red75prime в tokio, судя по всему, mpsc синхронный, верно?
источник

r

red75prime in Rust — русскоговорящее сообществo
Max Frai
red75prime в tokio, судя по всему, mpsc синхронный, верно?
Нет, конечно. Зачем синхронные каналы в асинхронной библиотеке.
источник

MF

Max Frai in Rust — русскоговорящее сообществo
А что тогда значит, что оно в sync модуле?
источник

r

red75prime in Rust — русскоговорящее сообществo
Модуль так называется. "Synchronization primitives for use in asynchronous contexts."
источник

MF

Max Frai in Rust — русскоговорящее сообществo
Понял, спасибо
источник

ДК

Денис Котляров in Rust — русскоговорящее сообществo
Выпуск языка программирования Rust 1.42

Опубликован релиз языка системного программирования Rust 1.42, основанного проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime.

https://www.opennet.ru/opennews/art.shtml?num=52537
источник

ДК

Денис Котляров in Rust — русскоговорящее сообществo
Денис Котляров
Выпуск языка программирования Rust 1.42

Опубликован релиз языка системного программирования Rust 1.42, основанного проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime.

https://www.opennet.ru/opennews/art.shtml?num=52537
на opennet, русское')
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
(если что, https://github.com/rust-lang-ru/translations/pull/50 дозревает уже)
источник

ДК

Денис Котляров in Rust — русскоговорящее сообществo
да, видел и читал)
источник

A

Anton 📦 ᯌ in Rust — русскоговорящее сообществo
Эрик
Некий enum без PartialEq, чтобы в тестах вместо assert_eq!(a, MyVariant(b)) писать assert!(matches!(a, MyVariant(B))). Например.
Это же даже длиньше
источник

MF

Max Frai in Rust — русскоговорящее сообществo
Подскажите, а как правильно делать sleep в асинхронном цикле, который внутри ожидает сообщений от mpsc-продьюсеров?
источник

MF

Max Frai in Rust — русскоговорящее сообществo
И правильно ли вообще так делать
источник

r

red75prime in Rust — русскоговорящее сообществo
async { loop { let msg = rx.await; /* do smth */ } } или я не так понял?
источник

MF

Max Frai in Rust — русскоговорящее сообществo
ага, это не будет нагружать процессор?
источник

MF

Max Frai in Rust — русскоговорящее сообществo
т.е. не нужно ли в этом loop делать “sleep”
источник

MF

Max Frai in Rust — русскоговорящее сообществo
если я знаю, что сообщения будут приходить один-два в пару сек
источник

K

Kitsu in Rust — русскоговорящее сообществo
await и есть тот самый sleep
источник

r

red75prime in Rust — русскоговорящее сообществo
std::thread::sleep в асинхронном коде не нужен никогда, от слова совсем
источник

MF

Max Frai in Rust — русскоговорящее сообществo
#[actix_rt::main]
async fn main() -> std::io::Result<()> {
   let (producer, mut consumer) = mpsc::unbounded_channel::<String>();
   tokio::spawn(move || preloader_logic(consumer));
}

pub async fn preloader_logic(mut consumer: mpsc::UnboundedReceiver<String>) {
   loop {
       while let Some(task) = consumer.recv().await {
           dbg!(task);
       }
   }
}
источник