pub async fn spin_until_ready<F, FO>(future: F) -> FOwhere
    F: Future<Output = FO>,