Size: a a a

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

2021 June 20

МТ

Марк Танащук... in Rust — русскоговорящее сообщество
Результат скину

В первой после e поставил c
В второй после v цифру 5
источник

МТ

Марк Танащук... in Rust — русскоговорящее сообщество
И этот код полностью валиден btw
источник

⚛R

⚛️ Revertron in Rust — русскоговорящее сообщество
Ребят, кто-то работал из асинков с mio? С неблокирующими TcpStream'ами и poll'ом?
источник

П

Пух in Rust — русскоговорящее сообщество
источник

⚛R

⚛️ Revertron in Rust — русскоговорящее сообщество
А, простите. Думал хотя бы ссылок на примеры накидаете, и я поизучаю.
Да и вообще, это возможно или нет?
источник

П

Пух in Rust — русскоговорящее сообщество
Токио на мио висит, вроде
источник

D

Denis in Rust — русскоговорящее сообщество
дык в репозитории mio есть примеры: https://github.com/tokio-rs/mio/tree/master/examples
источник

⚛R

⚛️ Revertron in Rust — русскоговорящее сообщество
Это обе их разработки, но нет примеров как сделать долгие коннекты, через которые время от времени можно гонять пакеты.
источник

⚛R

⚛️ Revertron in Rust — русскоговорящее сообщество
Да, примеры есть, но без асинков, и в одном потоке. Такое я уже отлично освоил. Хочется заложить мега-архитектуру сразу, чтобы многопоточно работать.
источник

D

Denis in Rust — русскоговорящее сообщество
а почему бы в таком случае не взять сразу токио?..
источник

⚛R

⚛️ Revertron in Rust — русскоговорящее сообщество
Что именно из него? Мы в проекте его и используем.
И у него есть свои стримы. Но как это клеить с долгими коннектами, а не коннект-запрос-ответ-закрыл, вот это задача.
источник

D

Denis in Rust — русскоговорящее сообщество
> что именно из него

готовые async-обёртки для всех примитивов из mio

> Но как это клеить с долгими коннектами

а в чём, собственно, проблема-то? О_о
источник

⚛R

⚛️ Revertron in Rust — русскоговорящее сообщество
Ну вот как хранить пучок TcpStream'ов. Как ожидать на них нужные стейты, как в это всунуть TcpListener.accept(), который производит новые стримы, которые !Send, и так далее?
источник

D

Denis in Rust — русскоговорящее сообщество
tokio::select! {
 stream = listener1.accept() => { .. }
 stream = listener2.accept() => { .. }
 ...
}
источник

⚛R

⚛️ Revertron in Rust — русскоговорящее сообщество
Слишком простой пример. Когда пытаешься реально реализовать, тогда натыкаешься на грабли постоянно.
Я поэтому и спрашиваю, есть какие-то примеры такого? Кто-то такое реализовывал уже?

Кстати, какого типа эти listener1 и listener2 тут должны быть?
Кто ими владеет? Захватывает ли их футура? И т.д.
источник

ph

pl 🦑 hk in Rust — русскоговорящее сообщество
источник

⚛R

⚛️ Revertron in Rust — русскоговорящее сообщество
Там нет таких примеров, только основы. За прошлую неделю прочитал два раза.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообщество
В данном случае это видимо TcpListener-ы, которые штамупют TcpStream-ы
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообщество
Если листенеров много, то я бы на каждый спавнил в отдельной таске
источник

ph

pl 🦑 hk in Rust — русскоговорящее сообщество
В mini redis и листенер, и долгоживущие конекты 🤷‍♀️
источник