pub async fn block<T>(future: T) -> Result<(), Error>where T: Future + Send + 'static, T::Output: Send + 'static,