Size: a a a

2022 January 20

r

red75prime in Rust Async
Циклы в асинке без await в теле цикла, например.
источник

ИК

Иван Кривошеев... in Rust Async
Любые циклы?
источник

p

polunin.ai in Rust Async
Очевидно, нет.
источник

II

Ivan Ivanov in Rust Async
использование синхронных sleep'ов в асинк блоке? Очевидно, что это bad practice
источник

ИК

Иван Кривошеев... in Rust Async
Ага, а ещё есть куча синхронных вещей, которые блокируют поток выполнения
источник
2022 January 21

JC

John Cantrell in Rust Async
Есть вопрос по внутренностям tokio. В чём смысл этого кода и почему нужно делать именно так? https://docs.rs/tokio/latest/src/tokio/macros/select.rs.html#611
источник

II

Ivan Ivanov in Rust Async
это какой-то уникальный случай, похоже. Во первых, я бы фиг это заметил, если бы не однопроцессорная тачка, во вторых блокировка в idle это вроде отдельный случай, ну и правило парето никто не отменял)
источник

D

Denis in Rust Async
Этот код позволяет посчитать количество переданных в макрос аргументов, как ещё это сделать?
источник

JC

John Cantrell in Rust Async
Спасибо за объяснение. А почему этот код не в стандартной библиотеке?
источник

JC

John Cantrell in Rust Async
Я на русте макросы никогда не писал, но предполагаю, что вот этот код сделает то же самое примерно
macro_rules! count {
   () => {
       0
   };
   (_ $($t:tt)*) => {
       1 + count!($($t)*)
   };
}
источник

П

Пух in Rust Async
потому что это страшное)
источник

D

Denis in Rust Async
Можно спросить на rust internals forum
источник

D

Denis in Rust Async
Кажется, что нет; но можно попробовать заменить прям в Токио и проверить
источник
2022 January 24

VM

Vladimir Melnikov in Rust Async
Привет всем. Не могу понять как правильно идеологически отслеживать дроп футуры. Кейс такой: при запросе например http на сервере иницируется cpu-bound таск путем spawn_blocking. Если клиент не дождется результата и закроет коннект со своей стороны, футура будет дропнута, а таска продолжит молотить, пока не даст уже никому не нужный результат. Хочу избежать такого поведения и в синхронной таске периодически чекать - ждет ли кто-нибудь результата или уже можно прерывать цикл и завершать таск. Как это правильно сделать? В голову пришло только чекать Arc::strong_count, но может есть более правильное решение?
источник

D

Denis in Rust Async
oneshot канал с () можно заюзать, например. если отправляющую часть дропнуть, то попытка прочитать что-то на получающей части вернёт ошибку
источник

VM

Vladimir Melnikov in Rust Async
oneshot работает же один раз, а тут проверка будет периодической
источник

D

Denis in Rust Async
источник

D

Denis in Rust Async
да в общем-то можно и любой синхронный канал для этих целей взять)
источник

С

Сергей in Rust Async
Без поддержки со стороны cpu bound ты вряд ли это сделаешь. Её некому вытеснить из треда и некому дать ей сигнал, что футура завершилась.
источник

VM

Vladimir Melnikov in Rust Async
так я ж говорю что в цикле буду проверять живость футуры. вопрс в та=ом как
источник