Size: a a a

2021 October 24

D

Denis in Rust Async
локальный "плэйграунд" сетапится за 3 секунды через cargo new --bin ... :)
источник

LB

Let Eat Bee in Rust Async
попытался сделать пример для T: Sink<i32>  + Stream<Item = i32> запутался в тысячах ошибок компиляции. вобщем пока про  split не узнал, накодил что-то рабочеее, не так как хотелось бы, когда просто две футуры в select!, но тоже ничего.  Как буду побыстрее с растом, спрошу ещё раз или сам уже разбирусь.
источник
2021 October 26

LB

Let Eat Bee in Rust Async
я правильно понимаю, что какой-нибудь listener.accept().and_then(|(tcp, _addr)| app_handshake(tcp))

в tokio::select! запихнуть нельзя, потому что оно не cancelation safe?
источник

D

Denis in Rust Async
почему нельзя? законы физики и языка не запрещают + что именно там не cancellation safe?
источник

D

Denis in Rust Async
как минимум в доке про accept явно написано, что он cancel safe
источник

LB

Let Eat Bee in Rust Async
accept да, но не весь комбинатор
источник

D

Denis in Rust Async
app_handshake не cancel safe?
источник

LB

Let Eat Bee in Rust Async
не важно, стейт между accept и app_handshake потеряется же на следующей итерации
источник

D

Denis in Rust Async
что за стейт между ними? О_о
источник

LB

Let Eat Bee in Rust Async
иными словами нельзя:

async { a = afut.await; bfut(a).await }

пихать в select
источник

D

Denis in Rust Async
почему нельзя-то?
источник

D

Denis in Rust Async
у тебя какие-то данные потеряются? эти функции пишут стейт в какие-то глобалки? нет? значит всё ок
источник

LB

Let Eat Bee in Rust Async
потому что вся футура пересоздается  меджу итерациями
источник

D

Denis in Rust Async
ну и что?
источник

LB

Let Eat Bee in Rust Async
ну и a = afut.await потеряется, не дойдя до bfut
источник

D

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

D

Denis in Rust Async
и что значит "потеряется"? это же не мягкая игрушка в детской комнате)
источник

LB

Let Eat Bee in Rust Async
ну если afut это accept, то оно создаст дескриптор, который дропнется  и коннект порвётся
источник

D

Denis in Rust Async
иии???
источник

LB

Let Eat Bee in Rust Async
ну что и :) клиент получит отлуп на ровном месте , connection reset всё такое
источник