Skip to content

Commit

Permalink
Reduce sleep time on Windows (#5098)
Browse files Browse the repository at this point in the history
  • Loading branch information
asvetlov authored and asvetlov committed Oct 21, 2020
1 parent 74d3729 commit bb5da5c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGES/5098.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Make `web.run_app()` more responsive to Ctrl+C on Windows for Python < 3.8. It slightly
increases CPU load as a side effect.
11 changes: 10 additions & 1 deletion aiohttp/web.py
Original file line number Diff line number Diff line change
Expand Up @@ -372,8 +372,17 @@ async def _run_app(app: Union[Application, Awaitable[Application]], *,
names = sorted(str(s.name) for s in runner.sites)
print("======== Running on {} ========\n"
"(Press CTRL+C to quit)".format(', '.join(names)))

# sleep forever by 1 hour intervals,
# on Windows before Python 3.8 wake up every 1 second to handle
# Ctrl+C smoothly
if sys.platform == "win32" and sys.version_info < 3.8:
delay = 1
else:
delay = 3600

while True:
await asyncio.sleep(3600) # sleep forever by 1 hour intervals
await asyncio.sleep(delay)
finally:
await runner.cleanup()

Expand Down

0 comments on commit bb5da5c

Please sign in to comment.