pub fn sleep_on<F: Future>(future: F) -> F::Output
Blocks the calling thread until a future is ready.
This implementation uses a condvar to sleep the thread.