import asyncio async def long_coro(): await asyncio.sleep(10000) async def real_wait(task): if task._callbacks: print("task._callbacks len =", len(task._callbacks)) await asyncio.wait([task], return_when=asyncio.FIRST_COMPLETED) async def loop(): long_task = asyncio.Task(long_coro()) while True: try: await asyncio.wait_for(real_wait(long_task), timeout=2) except asyncio.TimeoutError: pass await asyncio.sleep(1) asyncio.get_event_loop().run_until_complete(loop())