Size: a a a

2021 July 20

PL

Paul ❌ Loyd in Rust Async
Но я не шарю в виндовом IO, так что могу ошибаться
источник

DF

Dollar Føølish in Rust Async
Iocp работает с overlapped структурами ж
источник

DF

Dollar Føølish in Rust Async
Вот етот тезис откудова?
источник

PL

Paul ❌ Loyd in Rust Async
User APC это фактически и есть aio колбеки.
источник

PL

Paul ❌ Loyd in Rust Async
Но я сейчас посмотрел, что это лишь один из способов ожидания и что альтернатива (более каноничная?) таки iocp
источник

DF

Dollar Føølish in Rust Async
Да
источник

DF

Dollar Føølish in Rust Async
Вот ето
источник
2021 July 21

MB

Mikail Bagishov in Rust Async
Готово
источник
2021 July 24

FS

Filipp Samoilov in Rust Async
Привет! Я тут пытаюсь написать адаптер для futures::Stream. Как можно подписаться на вейки этого стрима?
источник

FS

Filipp Samoilov in Rust Async
пробема x: у меня есть стрим векторов произвольного размера и я в этом адаптере их переупаковываю в вектора одинакого размера
источник

FS

Filipp Samoilov in Rust Async
И когда приходит вектор, слишком маленький для того, чтобы набрать на полный пакет я возвращаю Poll::Pending из фьючи, и она больше не поллится
источник

П

Пух in Rust Async
Гугли в сторону вейкеров
источник

MB

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

FS

Filipp Samoilov in Rust Async
ааа я поллю его с тем же контекстом, который приходит в этот poll_next, значит теоретически он должен мой стрим тоже подписывать
источник

MB

Mikail Bagishov in Rust Async
Да
источник

FS

Filipp Samoilov in Rust Async
хм значит наверное проблема в другом, буду втыкать дальше, спасибо
источник

MB

Mikail Bagishov in Rust Async
Если вложенный стрим работает правильно, то это наверное значит что ты в какой-то ситуации получил от него Poll::Ready, а сам вернул Poll::Pending
источник

FS

Filipp Samoilov in Rust Async
так и было. оно должно заполлиться когда следующий вейк случается.
Этого не происходит возможно потому что я в тесте делаю два сенда подряд, а вейк наверное только один происходит
источник

FS

Filipp Samoilov in Rust Async
https://gist.github.com/rust-play/6977063f2070dfd66476dbd936c9e13a
вот код если интересно повтыкать со мной
источник

MB

Mikail Bagishov in Rust Async
https://gist.github.com/rust-play/6977063f2070dfd66476dbd936c9e13a#file-playground-rs-L46

Ну да, вот тут ошибка.
Вложенный стрим вернул Poll::Ready. Это значит, что он со своей стороны сделал все, что от него просили. Обязанность вейкать возникает только тогда, когда стрим или футура возвращают Poll::Pending
источник