и poll'ом?
дык в репозитории mio есть примеры: https://github.com/tokio-rs/mio/tree/master/examples
Да, примеры есть, но без асинков, и в одном потоке. Такое я уже отлично освоил. Хочется заложить мега-архитектуру сразу, чтобы многопоточно работать.
а почему бы в таком случае не взять сразу токио?..
Что именно из него? Мы в проекте его и используем. И у него есть свои стримы. Но как это клеить с долгими коннектами, а не коннект-запрос-ответ-закрыл, вот это задача.
> что именно из него готовые async-обёртки для всех примитивов из mio > Но как это клеить с долгими коннектами а в чём, собственно, проблема-то? О_о
Ну вот как хранить пучок TcpStream'ов. Как ожидать на них нужные стейты, как в это всунуть TcpListener.accept(), который производит новые стримы, которые !Send, и так далее?
tokio::select! { stream = listener1.accept() => { .. } stream = listener2.accept() => { .. } ... }
Слишком простой пример. Когда пытаешься реально реализовать, тогда натыкаешься на грабли постоянно. Я поэтому и спрашиваю, есть какие-то примеры такого? Кто-то такое реализовывал уже? Кстати, какого типа эти listener1 и listener2 тут должны быть? Кто ими владеет? Захватывает ли их футура? И т.д.
В данном случае это видимо TcpListener-ы, которые штамупют TcpStream-ы
Обсуждают сегодня