Coroutines event loops and futures