Skip to main content
Journey Uncommon Logo
JourneyUncommon
hardRustasync/await state machineSingle-choice MCQ

Given two `.await` points, why can a value of type `T: !Send` held across one of them make the whole async fn's returned future `!Send`, even if that value is dropped before the function ends?

async fn f() { let x = std::rc::Rc::new(0); // !Send g().await; // x is live across this await drop(x); h().await; }