D
Size: a a a
D
D
LB
async {
let s = l.accept().await;
app.handshake(s).await
}
если такое запихать select, то коннекты дропаются. я глаза сломал баг искать ) иными словами нельзя туда класть ничего где было б больше чем один await на всех уровнях внутриD
D
tokio::select! (да и не только он на самом деле) отменяет недовыполнившиеся футуркиLB
D
Cancellation safetyD
LB
D
D
LB
D
LB
D
D
tokio::select! {
_ = tokio::signal::ctrl_c() => {
log::info!("Received ctrl-c; terminating");
Ok(())
}
e = mega_complex_future => Err(e),
}D
tokio::select! недостаточно подробная, то создавай ишью в токио, а ещё лучше — сразу PR с докой :))LB
D
D