Aktualnie przesyłam projekt Pythona z systemu Linux do systemu Windows (przy użyciu Anaconda Python 3.6). Wszystko działa idealnie, po prostu nie mogę uzyskać wdzięcznego wyjścia z pętli asyncio.pętla asyncio add_signal_handler() w systemie Windows
W Linuksie robię co następuje:
class GracefulExit(SystemExit):
code = 1
def raise_graceful_exit():
raise GracefulExit()
loop = asyncio.get_event_loop()
loop.add_signal_handler(signal.SIGINT, raise_graceful_exit)
loop.add_signal_handler(signal.SIGTERM, raise_graceful_exit)
try:
loop.run_forever()
except GracefulExit:
pass
shutdown()
W Windows, niestety dostaję NotImplementedError
na add_signal_handler
. Bez tego oczywiście nigdy nie dostanę szansy na czyste zamknięcie programu.
Wszelkie pomysły na rozwiązanie tego problemu? Dzięki.
Patrz [wydanie 23057] (http://bugs.python.org/issue23057). – eryksun