This might be true for some raw Futures (e.g. connect
, as you noted), but it's not true in general, and it's not true for async
fns (which are always delayed).
So as soon as there's even the slightest bit of abstraction (e.g. an async
fn calling connect
), things will be delayed.
That's why I asked if you had any ideas for preemption, since it will be necessary to manually preempt Futures in Rust.
And that manual preemption is necessary with both implicit await
and explicit await
. In other words, explicit await
doesn't really help much.