#format wiki #language en = Python Asyncio = * https://docs.python.org/3/library/asyncio-eventloop.html * Note: Interesting alternative 2018 - https://github.com/python-trio/trio == Summary == * loop = asyncio.get_event_loop() * loop.run_forever() - Run until stop() is called, Blocks * loop.close() Close the event loop. The loop must not be running. Pending callbacks will be lost. * loop.call_soon(callback, *args) * loop.call_later(delay, callback, *args) - delay seconds * asyncio.time() - Return the current time, as a float value * loop.create_task(coro) - run async function as co-routine. == asyncio sleep function that can be quit with event == * globals.exitEvent = asyncio.Event() {{{ async def sleep(timeout): ''' replacement asyncio.sleep function. it also exits when receiving globals.exitEvent event. ''' print(f"sleep({timeout}) enter ... exitEvent={globals.exitEvent.is_set()}") try: await asyncio.wait_for( globals.exitEvent.wait(), timeout ) print("sleep: got globals.exitEvent() quitting ...") except asyncio.TimeoutError: print(f"sleep({timeout}) except asyncio.TimeoutError - pass") pass return globals.exitEvent.is_set( }}} ...