Size: a a a

2018 July 31

ph

pl 🦑 hk in Rust Async
читай рфц лодочника
источник

BD

Berkus Decker in Rust Async
@notplhk почему у тебя такой порядок функций странный?

в тойкио

   fn add_read_interest(&self, fd: RawFd, waker: Waker) {
   fn remove_read_interest(&self, fd: RawFd) {
   fn remove_write_interest(&self, fd: RawFd) {
   fn add_write_interest(&self, fd: RawFd, waker: Waker) {
??
источник

ph

pl 🦑 hk in Rust Async
копипастил прост)))
источник

D

Denis in Rust Async
я вот думаю, нельзя ли эти read/write сделать тайп-сейф как-нибудь, чтобы не получилось как в токио, когда там в одном месте случайно вместо read написали write (или наоборот), и в итоге всё висло нахуй, потому что поток ждал оповещения на запись, хотя по факту должен бы на чтение (или наоброт)
источник

D

Denis in Rust Async
вот есть сравнительно простая имлементация ивент лупа https://github.com/polachok/toykio
источник

D

Denis in Rust Async
Где можно почитать как это под капотом у Раста устроено?
источник

BD

Berkus Decker in Rust Async
о привет)
источник

AK

Andrei K in Rust Async
Привет.
источник

AK

Andrei K in Rust Async
Точно, ты же растаман.
источник

AK

Andrei K in Rust Async
Надо было у тебя спросить :D
источник

D

Denis in Rust Async
И еще вопрос. poll тоже ломает?
источник

BD

Berkus Decker in Rust Async
Andrei K
Надо было у тебя спросить :D
источник

BD

Berkus Decker in Rust Async
в тойкио всё понятно расписано
источник

D

Denis in Rust Async
Denis
И еще вопрос. poll тоже ломает?
ну вообще poll должен быть имплементирован как неблокирующая операция, но если ты вызовешь его из неправильного контекста, то таки можно всё сломать
+ если ты вызовешь вручную полл и он вернёт статус Ready, а потом ты эту фьючу куда-то дальше передашь, то всё может пойти по пизде
источник

ph

pl 🦑 hk in Rust Async
SAFETY
источник

D

Denis in Rust Async
ну так чё, есть идеи? https://t.me/tokio_rust/631
источник

BD

Berkus Decker in Rust Async
ну AsyncRead и AsyncWrite же разные трейты, не смешивай просто
источник

BD

Berkus Decker in Rust Async
если уж GPIO можно сделать тайп-сейф то и read/write можно
источник

D

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

D

Denis in Rust Async
вот пример говна — https://github.com/tokio-rs/tokio/pull/250
источник