asyncio: detención correcta de corrutinas que no son propias
📁 python, pregunta, Error: Análisis de errores (SyntaxError, TypeError, etc.), ejemplo, Versiones de Python: python3, asyncio: programación asíncrona, Temas de etiquetas: web, IA, juego
Estoy de nuevo con el mismo problema. En todos los tasks estaban bajo mi control, y podía cerrarlos manualmente. Pero aquí está el problema: necesité websockets. En los ejemplos en no se realiza ningún cierre correcto:
start_server = websockets.serve(hello, 'localhost', 8765)asyncio.get_event_loop().run_until_complete(start_server)asyncio.get_event_loop().run_forever()Jugué con los ejemplos, y sí, con Ctrl+C se queja si hay un cliente conectado:
$ python websocket_server.py ^CKeyboardInterruptException ignored in: Task was destroyed but it is pending!task: <Task pending coro=<run() running at websockets/protocol.py:235> wait_for=<Future pending cb=[Task._wakeup()]> cb=[_wait.<locals>._on_completion() at asyncio/tasks.py: