Add fall back for Windows even loop fetching (#2421)

This commit is contained in:
Adam Hopkins
2022-04-17 05:25:41 -04:00
committed by GitHub
parent 00218aa9f2
commit cc97287f8e
4 changed files with 16 additions and 8 deletions

View File

@@ -1 +1 @@
__version__ = "22.3.0"
__version__ = "22.3.1"

View File

@@ -252,7 +252,13 @@ class Sanic(BaseSanic, RunnerMixin, metaclass=TouchUpMeta):
"Loop can only be retrieved after the app has started "
"running. Not supported with `create_server` function"
)
return get_running_loop()
try:
return get_running_loop()
except RuntimeError:
if sys.version_info > (3, 10):
return asyncio.get_event_loop_policy().get_event_loop()
else:
return asyncio.get_event_loop()
# -------------------------------------------------------------------- #
# Registration

View File

@@ -72,7 +72,7 @@ def ctrlc_workaround_for_windows(app):
"""Asyncio wakeups to allow receiving SIGINT in Python"""
while not die:
# If someone else stopped the app, just exit
if app.is_stopping:
if app.state.is_stopping:
return
# Windows Python blocks signal handlers while the event loop is
# waiting for I/O. Frequent wakeups keep interrupts flowing.