Size: a a a

2021 November 01

f

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

f

folex in Rust Async
Но poll_unparked объявлено на 666й строке...
источник

D

Denis in Rust Async
ваще конкретно этот код не оч, т.к. channel.send(msg) вполне себе может вернуть Pending (например, потому что из другого потока уже забили очередь), а ты, получается, просто игнорируешь невыполнение
источник

f

folex in Rust Async
ой, там должно быть start_send
источник

f

folex in Rust Async
Видимо mpsc::Sender не гарантирует наличие слота после poll_ready
источник

D

Denis in Rust Async
дык бери токио и горя не знай :))
источник

V

Vetro in Rust Async
или flume :)
источник

D

Denis in Rust Async
или flume)
источник

f

folex in Rust Async
Ну... да 🙂 Но мне надо доделать огроменный рефакторинг, отладить стабильность, и потом уже смотреть на другие либы
источник

D

Denis in Rust Async
в токио-то прикольно то, что этот пермит можно явно использовать, типа получил пермит — а потом гарантированно отправил, на парясь о том, что там в других потоках кто-то параллельно может забить очередь канала
источник

f

folex in Rust Async
Но такое поведение меня более чем устраивает
источник

f

folex in Rust Async
Угу, это весьма красиво
источник

V

Vetro in Rust Async
Тут согласен, удобно

Можно даже самому пермиты резервить и сохранять куда-нибудь
источник

f

folex in Rust Async
Отправлять голубями 🙂
источник

D

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

NN

Nikita Nazarenko in Rust Async
А может кто подкинуть ссылку на чтиво о том как спроектировать свою библиотеку так, чтобы ей можно было пользоваться независимо от выбранного рантайма. ну т.е. не вязаться на конкретику tokio/async-std /wtfelse, а типа best practices.
источник
2021 November 02

D

Denis in Rust Async
Через фичи обычно делают
источник

D

Denis in Rust Async
По поводу best practices -- не встречал, но может кто всё-таки видел что-то на тему?
источник
2021 November 05

w

whoami in Rust Async
А у меня другой вопрос: как мне отвязаться от конкретной зависимости use tokio_stream::StreamExt; в следующем коде?
let mut nics = heim::net::nic().filter(|nic_res| match nic_res {
     Ok(n) => n.is_up() && !n.is_loopback(),
     _ => false
   });
причем heim::net::nic() возвращает Stream

Когда я прописываю use futures::stream::StreamExt;
то возникает ошибка
let mut nics = heim::net::nic().filter(|nic_res| match nic_res {
   |                                     ^^^^^^ `bool` is not a future
(указывает на filter)
источник

ph

pl 🦑 hk in Rust Async
У тебя вопрос почему у tokio StreamExt и futures StreamExt разные сигнатуры или как добавить async внутрь filter?
источник